Amazon Best VPN GoSearch

অনওয়ার্কস ফেভিকন

ns-3-মডেল-লাইব্রেরি - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে ns-3-মডেল-লাইব্রেরি চালান

এটি হল ns-3-model-library যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


ns-3-মডেল-লাইব্রেরি - ns-3 মডেল লাইব্রেরি

এই ns-3 মডেল লাইব্রেরি ডকুমেন্টেশন ns-3 প্রকল্পের জন্য প্রাথমিক ডকুমেন্টেশন
পাঁচটি আকারে পাওয়া যায়:

· ns-3 অক্সিজেন: সিমুলেটরের পাবলিক API-এর ডকুমেন্টেশন

· টিউটোরিয়াল, ম্যানুয়াল এবং মডেল লাইব্রেরি (এই নথি) জন্য সর্বশেষ মুক্তি এবং
উন্নয়ন বৃক্ষ

· ns-3 উইকি

এই নথিতে লেখা আছে reStructuredText উন্নত স্পিংক্স এবং রক্ষণাবেক্ষণ করা হয়
ডক/মডেল ns-3 এর সোর্স কোডের ডিরেক্টরি।

সংগঠন


এই ম্যানুয়াল জন্য ডকুমেন্টেশন কম্পাইল ns-3 মডেল এবং সমর্থনকারী সফ্টওয়্যার যা সক্ষম করে
ব্যবহারকারীরা নেটওয়ার্ক সিমুলেশন তৈরি করতে। এর মধ্যে পার্থক্য করা গুরুত্বপূর্ণ মডিউল
এবং মডেল:

· ns-3 সফ্টওয়্যার আলাদাভাবে সংগঠিত হয় মডিউল যে প্রতিটি একটি পৃথক হিসাবে নির্মিত হয়
সফ্টওয়্যার লাইব্রেরি। স্বতন্ত্র ns-3 প্রোগ্রামগুলি তাদের প্রয়োজনীয় মডিউল (লাইব্রেরি) লিঙ্ক করতে পারে
তাদের সিমুলেশন পরিচালনা করতে।

· ns-3 মডেল বাস্তব-বিশ্বের বস্তু, প্রোটোকল, ডিভাইস ইত্যাদির বিমূর্ত উপস্থাপনা।

An ns-3 মডিউল একাধিক মডেল নিয়ে গঠিত হতে পারে (উদাহরণস্বরূপ, ইন্টারনেট মডিউল
TCP এবং UDP উভয়ের মডেল রয়েছে)। সাধারণভাবে, ns-3 মডেল একাধিক স্প্যান করে না
তবে সফ্টওয়্যার মডিউল।

এই ম্যানুয়াল মডেল সম্পর্কে ডকুমেন্টেশন প্রদান করে ns-3. এটা অন্য দুটি পরিপূরক
মডেল সম্পর্কিত ডকুমেন্টেশনের উত্স:

· মডেল APIs নথিভুক্ত করা হয়, একটি প্রোগ্রামিং দৃষ্টিকোণ থেকে, ব্যবহার করে অক্সিজেন. ডক্সিজেন
ns-3 মডেলের জন্য উপলব্ধ on দ্য প্রকল্প ওয়েব সার্ভার.

· দ্য ns-3 মূল বিকাশকারীর ম্যানুয়াল মধ্যে নথিভুক্ত করা হয়. ns-3 মডেল ব্যবহার করা
মূলের সুবিধা, যেমন বৈশিষ্ট্য, ডিফল্ট মান, এলোমেলো সংখ্যা, পরীক্ষা
ফ্রেমওয়ার্ক ইত্যাদির পরামর্শ নিন প্রধান ওয়েব সাইট ম্যানুয়াল কপি খুঁজে পেতে.

অবশেষে, বিভিন্ন দিক সম্পর্কে অতিরিক্ত ডকুমেন্টেশন ns-3 তে বিদ্যমান থাকতে পারে প্রকল্প
উইকি.

কিভাবে মডেল লাইব্রেরি ডকুমেন্টেশন লিখতে হয় তার একটি নমুনা রূপরেখা কার্যকর করার মাধ্যমে পাওয়া যাবে
create-module.py প্রোগ্রাম এবং ফাইলটিতে তৈরি টেমপ্লেটটি দেখছেন
new-module/doc/new-module.rst.

$ cd src
$ ./create-module.py new-module

এই নথির অবশিষ্টাংশ মডিউল নামের দ্বারা বর্ণানুক্রমিকভাবে সংগঠিত হয়।

যদি আপনি নতুন ns-3, আপনি প্রথমে নেটওয়ার্ক মডিউল সম্পর্কে নীচে পড়তে চাইতে পারেন, যা
সিমুলেটরের জন্য কিছু মৌলিক মডেল রয়েছে। প্যাকেট মডেল, জন্য মডেল
বিভিন্ন ঠিকানা বিন্যাস, এবং নোড, নেট এর মত বস্তুর জন্য বিমূর্ত বেস ক্লাস
ডিভাইস, চ্যানেল, সকেট, এবং অ্যাপ্লিকেশন সেখানে আলোচনা করা হয়.

অ্যানিমেশন


অ্যানিমেশন নেটওয়ার্ক সিমুলেশনের জন্য একটি গুরুত্বপূর্ণ হাতিয়ার। যখন ns-3 একটি থাকে না
ডিফল্ট গ্রাফিকাল অ্যানিমেশন টুল, বর্তমানে আমাদের কাছে অ্যানিমেশন দেওয়ার দুটি উপায় রয়েছে, যথা
PyViz পদ্ধতি বা NetAnim পদ্ধতি ব্যবহার করে। PyViz পদ্ধতি বর্ণনা করা হয়েছে
http://www.nsnam.org/wiki/PyViz.

আমরা এখানে সংক্ষেপে NetAnim পদ্ধতি বর্ণনা করব।

নেটঅ্যানিম
NetAnim একটি স্বতন্ত্র, Qt4-ভিত্তিক সফ্টওয়্যার এক্সিকিউটেবল যেটি তৈরি করা একটি ট্রেস ফাইল ব্যবহার করে
একটি সময় সময় ns-3 টপোলজি প্রদর্শন এবং মধ্যে প্যাকেট প্রবাহ অ্যানিমেট করার জন্য সিমুলেশন
নোড
[image] wired-links.UNINDENT-এ প্যাকেট অ্যানিমেশনের একটি উদাহরণ

এছাড়াও, NetAnim মেটা-ডেটা প্রদর্শনের জন্য টেবিলের মতো দরকারী বৈশিষ্ট্যও সরবরাহ করে
নীচের ছবির মত প্যাকেটের
[ছবি] প্রোটোকল ফিল্টার সহ প্যাকেট মেটা-ডেটার জন্য টেবিলের একটি উদাহরণ। UNINDENT

একটি মোবাইল নোডের গতিপথ কল্পনা করার একটি উপায়
[ছবি] একটি মোবাইল নোডের গতিপথের একটি উদাহরণ। UNINDENT

সময়ে বিভিন্ন পয়েন্টে একাধিক নোডের রাউটিং-টেবিল প্রদর্শন করার একটি উপায়
[ছবি]

একটি চার্ট বা একটি টেবিল হিসাবে একাধিক নোডের সাথে যুক্ত কাউন্টারগুলি প্রদর্শন করার একটি উপায়
[ছবি]
[ছবি]

প্যাকেট ট্রান্সমিটের টাইমলাইন দেখার এবং ইভেন্টগুলি গ্রহণ করার একটি উপায়
[ছবি]

প্রণালী বিজ্ঞান
ক্লাস ns3::AnimationInterface ট্রেস এক্সএমএল ফাইল তৈরির জন্য দায়ী।
অ্যানিমেশন ইন্টারফেস নোডের মধ্যে প্যাকেট প্রবাহ ট্র্যাক করতে ট্রেসিং অবকাঠামো ব্যবহার করে।
অ্যানিমেশন ইন্টারফেস টিএক্স এবং আরএক্স ইভেন্টের আগে একটি ট্রেস হুক হিসাবে নিজেকে নিবন্ধন করে
সিমুলেশন শুরু হয়। যখন একটি প্যাকেট সংক্রমণ বা অভ্যর্থনা জন্য নির্ধারিত হয়,
অ্যানিমেশন ইন্টারফেসে সংশ্লিষ্ট tx এবং rx ট্রেস হুক বলা হয়। যখন rx হুক
বলা হয়, অ্যানিমেশন ইন্টারফেস দুটি শেষ পয়েন্ট সম্পর্কে সচেতন থাকবে যার মধ্যে একটি প্যাকেট
প্রবাহিত হয়েছে, এবং এই তথ্যটি ট্রেস ফাইলের সাথে XML বিন্যাসে যোগ করে
সংশ্লিষ্ট tx এবং rx টাইমস্ট্যাম্প। XML বিন্যাসটি পরবর্তী বিভাগে আলোচনা করা হবে।
এটা মনে রাখা গুরুত্বপূর্ণ যে অ্যানিমেশন ইন্টারফেস শুধুমাত্র rx ট্রেস হলেই একটি প্যাকেট রেকর্ড করে
হুক বলা হয়। প্রতিটি tx ইভেন্ট অবশ্যই একটি rx ইভেন্ট দ্বারা মিলিত হতে হবে।

ডাউনলোড নেটঅ্যানিম
NetAnim ইতিমধ্যে উপলব্ধ না হলে ns-3 আপনি ডাউনলোড করেছেন প্যাকেজ, আপনি করতে পারেন
নিম্নলিখিত:

আপনি পারদ ইনস্টল করেছেন তা নিশ্চিত করুন. NetAnim এর সর্বশেষ সংস্করণ হতে পারে
নিম্নোক্ত কমান্ডের সাহায্যে mercurial ব্যবহার করে ডাউনলোড করা হয়েছে:

$ hg ক্লোন http://code.nsnam.org/netanim

ভবন নেটঅ্যানিম
পূর্বশর্ত
NetAnim তৈরি করতে Qt4 (4.7 এবং তার বেশি) প্রয়োজন। এটি নিম্নলিখিত ব্যবহার করে প্রাপ্ত করা যেতে পারে
উপায়:

ডেবিয়ান/উবুন্টু লিনাক্স বিতরণের জন্য:

$ apt-get install qt4-dev-tools

Red Hat/Fedora ভিত্তিক বিতরণের জন্য:

$yum qt4 ইনস্টল করুন
$yum qt4-devel ইনস্টল করুন

Mac/OSX-এর জন্য, দেখুন http://qt.nokia.com/downloads/

নির্মাণ করা ধাপ
NetAnim তৈরি করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

$cd নেতানিম
$ পরিষ্কার করুন
$ qmake NetAnim.pro (MAC ব্যবহারকারীদের জন্য: qmake -spec macx-g++ NetAnim.pro)
আমি তৈরি

দ্রষ্টব্য: কিছু সিস্টেমে qmake "qmake-qt4" হতে পারে

এটি একই ডিরেক্টরিতে "NetAnim" নামে একটি এক্সিকিউটেবল তৈরি করা উচিত:

$ls -l NetAnim
-rwxr-xr-x 1 জন জন 390395 2012-05-22 08:32 NetAnim

ব্যবহার
NetAnim ব্যবহার করা একটি দ্বি-পদক্ষেপ প্রক্রিয়া

ধাপ 1: সিমুলেশন ব্যবহার করার সময় অ্যানিমেশন XML ট্রেস ফাইল তৈরি করুন
"ns3::অ্যানিমেশন ইন্টারফেস" এর মধ্যে ns-3 কোড বেস।

ধাপ 2: অফলাইন Qt1-ভিত্তিক অ্যানিমেটর দিয়ে ধাপ 4-এ জেনারেট করা XML ট্রেস ফাইল লোড করুন
নাম NetAnim।

ধাপ 1: জেনারেট করুন এক্সএমএল অ্যানিমেশন চিহ্ন ফাইল
"src/netanim" এর অধীনে "AnimationInterface" ক্লাস অন্তর্নিহিত ব্যবহার করে ns-3 উত্স ট্রেস
XML ফর্ম্যাটে একটি টাইমস্ট্যাম্পড ASCII ফাইল তৈরি করুন।

উদাহরণ src/netanim/examples এর অধীনে পাওয়া যায় উদাহরণ:

$ ./waf -d ডিবাগ কনফিগার --enable-examples
$ ./waf --run "ডাম্বেল-অ্যানিমেশন"

উপরেরটি একটি XML ফাইল তৈরি করবে dumbbell-animation.xml

কার্যভার
1. নিশ্চিত করুন যে আপনার প্রোগ্রামের wscript-এ "netanim" মডিউল অন্তর্ভুক্ত রয়েছে। যেমন একটি উদাহরণ
wscript src/netanim/examples/wscript এ আছে।

2. আপনার পরীক্ষার প্রোগ্রামে হেডার [#include "ns3/netanim-module.h"] অন্তর্ভুক্ত করুন

3. বিবৃতি যোগ করুন

AnimationInterface anim ("animation.xml"); // যেখানে "animation.xml" যেকোন নির্বিচারে ফাইলের নাম

[ns-3.13 এর আগের সংস্করণগুলির জন্য আপনাকে সেট করতে "anim.SetXMLOutput() লাইনটিও ব্যবহার করতে হবে
XML মোড এবং এছাড়াও anim.StartAnimation();]

ঐচ্ছিক
নিম্নলিখিতগুলি ঐচ্ছিক কিন্তু দরকারী পদক্ষেপ:

// ধাপ 1
anim.SetMobilityPollInterval (সেকেন্ড (1));

অ্যানিমেশন ইন্টারফেস ডিফল্টরূপে প্রতি 250 মিসে সব নোডের অবস্থান রেকর্ড করে। দ্য
উপরের বিবৃতিটি পর্যায়ক্রমিক ব্যবধান সেট করে যেখানে অ্যানিমেশন ইন্টারফেস রেকর্ড করে
সমস্ত নোডের অবস্থান। যদি নোডগুলি খুব কম সরানোর আশা করা হয় তবে এটি সেট করা দরকারী
বড় XML ফাইল এড়াতে একটি উচ্চ গতিশীলতা পোল ব্যবধান।

// ধাপ 2
anim.SetConstantPosition (Ptr< নোড > n, ডাবল এক্স, ডবল y);

অ্যানিমেশন ইন্টারফেসের জন্য সমস্ত নোডের অবস্থান সেট করা প্রয়োজন। ভিতরে ns-3 এই দ্বারা করা হয়
একটি সম্পর্কিত গতিশীলতা মডেল সেট করা। "SetConstantPosition" হল xy সেট করার একটি দ্রুত উপায়
একটি নোডের স্থানাঙ্ক যা স্থির।

// ধাপ 3
anim.SetStartTime (সেকেন্ড(150)); এবং anim.SetStopTime (সেকেন্ড(150));

অ্যানিমেশন ইন্টারফেস বড় XML ফাইল তৈরি করতে পারে। উপরের বিবৃতি উইন্ডো সীমাবদ্ধ
যার মধ্যে অ্যানিমেশন ইন্টারফেস ট্রেসিং করে। উইন্ডো সীমাবদ্ধ করা শুধুমাত্র ফোকাস করতে কাজ করে
সিমুলেশনের প্রাসঙ্গিক অংশে এবং পরিচালনাযোগ্যভাবে ছোট XML ফাইল তৈরি করা

// ধাপ 4
AnimationInterface anim ("animation.xml", 50000);

উপরের কনস্ট্রাক্টর ব্যবহার করে নিশ্চিত করে যে প্রতিটি অ্যানিমেশন এক্সএমএল ট্রেস ফাইলে মাত্র 50000টি রয়েছে
প্যাকেট উদাহরণস্বরূপ, যদি AnimationInterface উপরের ব্যবহার করে 150000 প্যাকেট ক্যাপচার করে
কনস্ট্রাক্টর ক্যাপচারটিকে 3টি ফাইলে বিভক্ত করে

· animation.xml - প্যাকেট পরিসীমা 1-50000 ধারণ করে

· animation.xml-1 - প্যাকেট পরিসীমা 50001-100000 সমন্বিত

· animation.xml-2 - প্যাকেট পরিসীমা 100001-150000 সমন্বিত

// ধাপ 5
anim.EnablePacketMetadata (সত্য);

উপরের বিবৃতি দিয়ে, অ্যানিমেশন ইন্টারফেস প্রতিটি প্যাকেটের মেটা-ডেটা রেকর্ড করে
xml ট্রেস ফাইল। মেটাডেটা NetAnim দ্বারা আরও ভাল পরিসংখ্যান এবং ফিল্টার প্রদান করতে ব্যবহার করা যেতে পারে,
প্যাকেট সম্পর্কে কিছু সংক্ষিপ্ত তথ্য প্রদানের সাথে যেমন TCP সিকোয়েন্স নম্বর
অথবা প্যাকেট অ্যানিমেশনের সময় উৎস ও গন্তব্য আইপি ঠিকানা।

সতর্কতা: এই বৈশিষ্ট্যটি সক্ষম করার ফলে বড় XML ট্রেস ফাইল হবে৷ অনুগ্রহ করে করনা
Wimax লিঙ্ক ব্যবহার করার সময় এই বৈশিষ্ট্য সক্রিয় করুন.

// ধাপ 6
anim.UpdateNodeDescription (5, "অ্যাক্সেস-পয়েন্ট");

উপরের বিবৃতিটির সাথে, অ্যানিমেশন ইন্টারফেস নোড 5-এ "অ্যাক্সেস-পয়েন্ট" পাঠ্য নির্ধারণ করে।

// ধাপ 7
anim.UpdateNodeSize (6, 1.5, 1.5);

উপরের বিবৃতি দিয়ে, AnimationInterface নোডের আকার 1.5 দ্বারা স্কেল করে। নেটঅ্যানিম
স্বয়ংক্রিয়ভাবে টপোলজির সীমারেখার সাথে মানানসই গ্রাফিক্স ভিউ স্কেল করে। এর মানে
যে NetAnim, অস্বাভাবিকভাবে একটি নোডের আকার খুব বেশি বা খুব কম স্কেল করতে পারে। ব্যবহার
AnimationInterface::UpdateNodeSize আপনাকে NetAnim-এ ডিফল্ট স্কেলিং ওভাররাইট করতে দেয়
এবং আপনার নিজস্ব কাস্টম স্কেল ব্যবহার করুন।

// ধাপ 8
anim.UpdateNodeCounter (89, 7, 3.4);

উপরের বিবৃতি দিয়ে, AnimationInterface কাউন্টারটিকে Id == 89 এর সাথে সংযুক্ত করে
নোড 7 এর সাথে মান 3.4 সহ। Id 89 সহ কাউন্টারটি ব্যবহার করে প্রাপ্ত করা হয়
অ্যানিমেশন ইন্টারফেস::AddNodeCounter. এই জন্য একটি উদাহরণ ব্যবহার করা হয়
src/netanim/examples/resources_demo.cc.

ধাপ 2: বোঝাই দ্য এক্সএমএল in নেটঅ্যানিম
1. ধরে নিচ্ছি NetAnim নির্মিত হয়েছে, NetAnim চালু করতে "./NetAnim" কমান্ডটি ব্যবহার করুন। অনুগ্রহ
NetAnim উপলব্ধ না হলে "Building NetAnim" বিভাগটি পর্যালোচনা করুন।

2. NetAnim খোলা হলে, উপরের-বাম কোণে ফাইল খুলুন বোতামে ক্লিক করুন, নির্বাচন করুন
XML ফাইলটি ধাপ 1 এর সময় তৈরি হয়েছে।

3. অ্যানিমেশন শুরু করতে সবুজ প্লে বোতাম টিপুন৷

এখানে এই চিত্রিত একটি ভিডিও আছে http://www.youtube.com/watch?v=tz_hUuNwFDs

উইকি
"NetAnim" ইনস্টল করার বিষয়ে বিস্তারিত নির্দেশাবলীর জন্য, FAQ এবং XML ট্রেস ফাইল লোড করার জন্য
(আগে উল্লিখিত) NetAnim ব্যবহার করে অনুগ্রহ করে দেখুন: http://www.nsnam.org/wiki/NetAnim

শুঙ্গ মডিউল


নকশা ডকুমেন্টেশন
সংক্ষিপ্ত বিবরণ
অ্যান্টেনা মডিউল প্রদান করে:

1. একটি নতুন বেস ক্লাস (অ্যান্টেনা মডেল) যা মডেলিংয়ের জন্য একটি ইন্টারফেস প্রদান করে
একটি অ্যান্টেনার বিকিরণ প্যাটার্ন;

2. এই বেস ক্লাস থেকে প্রাপ্ত ক্লাসের একটি সেট যা প্রতিটি বিকিরণ প্যাটার্নকে মডেল করে
বিভিন্ন ধরনের অ্যান্টেনা।

অ্যান্টেনা মডেল
অ্যান্টেনা মডেলটি [বালানিস] এ গৃহীত সমন্বয় ব্যবস্থা ব্যবহার করে এবং চিত্রে চিত্রিত করা হয়েছে
সমন্বয় পদ্ধতি of দ্য অ্যান্টেনা মডেল. এই সিস্টেমটি কার্টেসিয়ান ট্রাসলেট করে প্রাপ্ত হয়
ns-3 MobilityModel দ্বারা নতুন উৎপত্তিতে ব্যবহৃত সমন্বয় সিস্টেম
অ্যান্টেনার অবস্থান, এবং তারপর প্রতিটি জেনেরিক পয়েন্ট p এর স্থানাঙ্কগুলিকে রূপান্তরিত করা
কার্টেসিয়ান স্থানাঙ্ক (x,y,z) থেকে স্থান গোলাকার স্থানাঙ্কে (r, heta,hi)।
অ্যান্টেনা মডেল রেডিয়াল উপাদান r অবহেলা করে, এবং শুধুমাত্র কোণ উপাদান বিবেচনা করে
(হেটা, হাই)।
একটি অ্যান্টেনা বিকিরণ প্যাটার্ন তারপর একটি গাণিতিক ফাংশন g(heta, hi) হিসাবে প্রকাশ করা হয়
grightarrow thcal{R} যা প্রতিটি সম্ভাব্য দিকের জন্য লাভ (dB-তে) প্রদান করে
ট্রান্সমিশন/অভ্যর্থনা। সমস্ত কোণ রেডিয়ানে প্রকাশ করা হয়।
[image] AntennaModel.UNINDENT এর সমন্বয় ব্যবস্থা

তবে শর্ত থাকে মডেল
এই বিভাগে আমরা অ্যান্টেনা বিকিরণ প্যাটার্ন মডেলগুলি বর্ণনা করি যা অন্তর্ভুক্ত রয়েছে
অ্যান্টেনা মডিউল।

আইসোট্রপিক অ্যান্টেনা মডেল
এই অ্যান্টেনা বিকিরণ প্যাটার্ন মডেল সমস্ত দিকের জন্য একক লাভ (0 dB) প্রদান করে।

কোসাইন অ্যান্টেনা মডেল
এটি [চুনজিয়ান]-এ বর্ণিত কোসাইন মডেল: অ্যান্টেনা লাভ এইভাবে নির্ধারিত হয়:

কোথায় হাই_{0}
অ্যান্টেনার আজিমুথাল স্থিতিবিন্যাস (অর্থাৎ, সর্বাধিক লাভের দিক) এবং
ঘৃণ্য

পছন্দসই 3dB বিমউইথ হাই_{3dB} নির্ধারণ করে।
লক্ষ্য করুন যে এই বিকিরণ প্যাটার্নটি প্রবণ কোণ হেটা থেকে স্বাধীন।

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

প্যারাবোলিক অ্যান্টেনা মডেল
এই মডেলটি প্রধান লোব বিকিরণ প্যাটার্নের প্যারাবোলিক আনুমানিকতার উপর ভিত্তি করে। এটা
একটি কোষের বিকিরণ প্যাটার্ন মডেল করার জন্য প্রায়ই সেলুলার সিস্টেমের প্রসঙ্গে ব্যবহৃত হয়
সেক্টর, উদাহরণস্বরূপ [R4-092042a] এবং [Calcev] দেখুন। dB এ অ্যান্টেনা লাভ নির্ধারিত হয়
যেমন:

কোথায় হাই_{0}
অ্যান্টেনার আজিমুথাল স্থিতিবিন্যাস (অর্থাৎ, সর্বাধিক লাভের দিক),
হাই_{3dB}
এর 3 dB বিম প্রস্থ, এবং A_{max} হল অ্যান্টেনার dB-তে সর্বাধিক ক্ষয়। বিঃদ্রঃ
যে এই বিকিরণ প্যাটার্নটি প্রবণ কোণ হেটা থেকে স্বাধীন।

[বালানিস]
সিএ বালানিস, "অ্যান্টেনা তত্ত্ব - বিশ্লেষণ এবং নকশা", উইলি, 2য় এড।

[চুনজিয়ান]
লি চুনজিয়ান, "থ্রি-সেক্টর WCDMA সিস্টেমের জন্য দক্ষ অ্যান্টেনা প্যাটার্নস", মাস্টার
বিজ্ঞান থিসিস, চালমার ইউনিভার্সিটি অফ টেকনোলজি, গোটেবর্গ, সুইডেন, 2003

[কালসেভ]
জর্জ ক্যালসেভ এবং ম্যাট ডিলন, "সিডিএমএ নেটওয়ার্কে অ্যান্টেনা টিল্ট কন্ট্রোল", প্রোক-এ। এর
2য় বার্ষিক আন্তর্জাতিক ওয়্যারলেস ইন্টারনেট সম্মেলন (WICON), 2006

[R4-092042a]
3GPP TSG RAN WG4 (রেডিও) মিটিং #51, R4-092042, সিমুলেশন অনুমান এবং
FDD HeNB RF প্রয়োজনীয়তার জন্য পরামিতি।

ব্যবহারকারী ডকুমেন্টেশন
মডিউল করা অ্যান্টেনা সমস্ত বেতার প্রযুক্তি এবং শারীরিক স্তরের সাথে ব্যবহার করা যেতে পারে
মডেল যা এটি সমর্থন করে। বর্তমানে, এর উপর ভিত্তি করে শারীরিক স্তরের মডেল অন্তর্ভুক্ত রয়েছে
স্পেকট্রামফি। বিস্তারিত জানার জন্য এই মডেলগুলির প্রতিটির ডকুমেন্টেশন পড়ুন।

পরীক্ষামূলক ডকুমেন্টেশন
এই বিভাগে আমরা যাচাই করা অ্যান্টেনা মডিউলের সাথে অন্তর্ভুক্ত টেস্ট স্যুটগুলি বর্ণনা করি৷
এর সঠিক কার্যকারিতা।

কোণ
ইউনিট পরীক্ষা স্যুট কোণ যাচাই করে যে অ্যাঙ্গেল ক্লাসটি সঠিকভাবে নির্মিত হয়েছে
উপলব্ধ পদ্ধতি অনুযায়ী 3D কার্টেসিয়ান স্থানাঙ্ক থেকে সঠিক রূপান্তর
(একক ভেক্টর এবং একজোড়া ভেক্টর থেকে নির্মাণ)। প্রতিটি পদ্ধতির জন্য, বেশ কয়েকটি
পরীক্ষার কেস প্রদান করা হয় যা মানগুলির তুলনা করে (হাই,
heta) কনস্ট্রাক্টর দ্বারা পরিচিত রেফারেন্স মান নির্ধারণ করা হয়। পরীক্ষা পাস যদি প্রতিটি জন্য
যে ক্ষেত্রে মানগুলি 10^{-10} এর সহনশীলতা পর্যন্ত রেফারেন্সের সমান
সংখ্যাগত ত্রুটির জন্য।

ডিগ্রী ToRadians
ইউনিট পরীক্ষা স্যুট ডিগ্রি-রেডিয়ান পদ্ধতিগুলি যাচাই করে ডিগ্রী ToRadians এবং
RadiansToDegrees একটি সংখ্যায় পরিচিত রেফারেন্স মানের সাথে তুলনা করে সঠিকভাবে কাজ করুন
পরীক্ষার ক্ষেত্রে 10^{-10} সহনশীলতার তুলনা সমান হলে প্রতিটি টেস্ট কেস পাস করে
যা সংখ্যাগত ত্রুটির জন্য দায়ী।

আইসোট্রপিক অ্যান্টেনা মডেল
ইউনিট পরীক্ষা স্যুট আইসোট্রপিক-অ্যান্টেনা-মডেল চেক করে যে আইসোট্রপিক অ্যান্টেনা মডেল শ্রেণী
সঠিকভাবে কাজ করে, অর্থাৎ, দিক নির্বিশেষে সর্বদা একটি 0dB লাভ ফেরত দেয়।

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

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

AD এইচওসি চাহিদা সাপেক্ষে DISTANCE এর ভেক্টর (AODV)


এই মডেলটি অ্যাডহক অন-ডিমান্ড ডিসট্যান্স ভেক্টরের বেস স্পেসিফিকেশন প্রয়োগ করে
(AODV) প্রোটোকল। এর উপর ভিত্তি করে বাস্তবায়ন করা হয় জন্য RFC 3561.

মডেলটি লিখেছেন ITTP RAS এর এলেনা বুচাটস্কায়া এবং পাভেল বয়কো, এবং এর উপর ভিত্তি করে
ns-2 AODV মডেলটি CMU/MONARCH গ্রুপ দ্বারা তৈরি এবং সামির দ্বারা অপ্টিমাইজ করা এবং সুর করা হয়েছে
দাস এবং মহেশ মেরিনা, ইউনিভার্সিটি অফ সিনসিনাটি, এবং এছাড়াও AODV-UU বাস্তবায়নে
উপসালা বিশ্ববিদ্যালয়ের এরিক নর্ডস্ট্রোম।

মডেল বিবরণ
AODV মডেলের সোর্স কোড ডিরেক্টরিতে থাকে src/aodv.

নকশা
শ্রেণী ns3::aodv::রাউটিং প্রোটোকল পরিষেবা প্যাকেট এক্সচেঞ্জের সমস্ত কার্যকারিতা প্রয়োগ করে
এবং উত্তরাধিকার সূত্রে প্রাপ্ত ns3::Ipv4RoutingProtocol. বেস ক্লাস দুটি ভার্চুয়াল ফাংশন সংজ্ঞায়িত করে
প্যাকেট রাউটিং এবং ফরওয়ার্ড করার জন্য। প্রথমটি, ns3::aodv::RouteOutput, জন্য ব্যবহৃত হয়
স্থানীয়ভাবে উদ্ভূত প্যাকেট, এবং দ্বিতীয়টি, ns3::aodv::RouteInput, জন্য ব্যবহৃত হয়
ফরওয়ার্ডিং এবং/অথবা প্রাপ্ত প্যাকেট বিতরণ।

প্রোটোকল অপারেশন অনেক সামঞ্জস্যযোগ্য পরামিতি উপর নির্ভর করে। এই জন্য পরামিতি
কার্যকারিতা এর বৈশিষ্ট্য ns3::aodv::রাউটিং প্রোটোকল. পরামিতি ডিফল্ট মান হয়
RFC থেকে আঁকা এবং সক্রিয়/অক্ষম করার প্রোটোকল বৈশিষ্ট্যগুলিকে অনুমতি দেয়, যেমন
HELLO বার্তা সম্প্রচার করা, ডেটা প্যাকেট সম্প্রচার করা ইত্যাদি।

AODV চাহিদা অনুযায়ী রুট আবিষ্কার করে। অতএব, AODV মডেল সমস্ত প্যাকেট বাফার করে যখন a
রুট অনুরোধ প্যাকেট (RREQ) ছড়িয়ে দেওয়া হয়। একটি প্যাকেট সারি বাস্তবায়িত হয়
aodv-rqueue.cc প্যাকেটের দিকে একটি স্মার্ট পয়েন্টার, ns3::Ipv4RoutingProtocol::ErrorCallback,
ns3::Ipv4RoutingProtocol::UnicastForwardCallback, এবং IP শিরোনাম এটি সংরক্ষণ করা হয়
কিউ. প্যাকেট সারি পুরানো প্যাকেটের আবর্জনা সংগ্রহ এবং একটি সারির আকার প্রয়োগ করে
সীমা।

রাউটিং টেবিল বাস্তবায়ন পুরানো এন্ট্রি এবং রাজ্যের আবর্জনা সংগ্রহকে সমর্থন করে
মেশিন, মান সংজ্ঞায়িত. এটি একটি STL মানচিত্র ধারক হিসাবে প্রয়োগ করা হয়। চাবি ক
গন্তব্য আইপি ঠিকানা.

প্রোটোকল অপারেশনের কিছু উপাদান RFC-তে বর্ণনা করা হয় না। এই উপাদানগুলি সাধারণত
বিভিন্ন OSI মডেল স্তরের সহযোগিতা উদ্বেগ. মডেল নিম্নলিখিত ব্যবহার করে
হিউরিস্টিকস:

· এই AODV বাস্তবায়ন একমুখী লিঙ্কের উপস্থিতি সনাক্ত করতে পারে এবং তাদের এড়াতে পারে
যদি প্রয়োজন হয় তাহলে. মডেলটি যে নোডটির জন্য একটি RREQ পেয়েছে তা যদি প্রতিবেশী হয়, তাহলে কারণ হতে পারে৷
একটি unidirectional লিঙ্ক হতে. এই হিউরিস্টিক AODV-UU বাস্তবায়ন থেকে নেওয়া হয়েছে এবং করতে পারেন
অক্ষম করা

· প্রোটোকল অপারেশন দৃঢ়ভাবে ভাঙ্গা লিঙ্ক সনাক্তকরণ প্রক্রিয়ার উপর নির্ভর করে। মডেলটি
এই ধরনের দুটি হিউরিস্টিক প্রয়োগ করে। প্রথমত, এই বাস্তবায়ন HELLO বার্তা সমর্থন করে।
যাইহোক HELLO বার্তাগুলি একটি ওয়্যারলেসে প্রতিবেশী সেন্সিং সঞ্চালনের একটি ভাল উপায় নয়৷
পরিবেশ (অন্তত 802.11 এর বেশি নয়)। অতএব, কেউ খারাপ পারফরম্যান্স অনুভব করতে পারে
যখন ওয়্যারলেসের উপর চলছে। এর বেশ কয়েকটি কারণ রয়েছে: 1) হ্যালো বার্তাগুলি
সম্প্রচারিত 802.11-এ, সম্প্রচার প্রায়ই ইউনিকাস্টিংয়ের চেয়ে কম বিট হারে করা হয়,
এইভাবে HELLO বার্তাগুলি ইউনিকাস্ট ডেটার চেয়ে আরও বেশি ভ্রমণ করতে পারে। 2) হ্যালো বার্তাগুলি ছোট,
এইভাবে ডেটা ট্রান্সমিশনের তুলনায় বিট ত্রুটির প্রবণতা কম, এবং 3) সম্প্রচার ট্রান্সমিশন
ইউনিকাস্ট ট্রান্সমিশনের বিপরীতে দ্বিমুখী হওয়ার নিশ্চয়তা নেই। দ্বিতীয়ত, আমরা ব্যবহার করি
স্তর 2 প্রতিক্রিয়া যখন সম্ভব. ফ্রেম ট্রান্সমিশন হলে লিঙ্ক ভাঙ্গা বলে মনে করা হয়
সমস্ত পুনঃপ্রচারের জন্য একটি ট্রান্সমিশন ব্যর্থতার ফলাফল। এই প্রক্রিয়া সক্রিয় জন্য বোঝানো হয়
লিঙ্ক এবং প্রথম পদ্ধতির চেয়ে দ্রুত কাজ করে।

লেয়ার 2 ফিডব্যাক বাস্তবায়ন নির্ভর করে TxErrHeader ট্রেস সোর্স, বর্তমানে
শুধুমাত্র AdhocWifiMac এ সমর্থিত।

ব্যাপ্তি এবং সীমাবদ্ধতা
মডেলটি শুধুমাত্র IPv4 এর জন্য। নিম্নলিখিত ঐচ্ছিক প্রোটোকল অপ্টিমাইজেশানগুলি নয়৷
বাস্তবায়িত:

1. রিং অনুসন্ধান প্রসারিত করা হচ্ছে।

2. স্থানীয় লিঙ্ক মেরামত.

3. RREP, RREQ এবং HELLO বার্তা এক্সটেনশন।

এই কৌশলগুলির জন্য আইপি হেডারে সরাসরি অ্যাক্সেসের প্রয়োজন, যা থেকে দাবির বিরোধিতা করে
AODV RFC যে AODV UDP এর উপর কাজ করে। এই মডেলটি সরলতার জন্য UDP ব্যবহার করে, বাধা দেয়
নির্দিষ্ট প্রোটোকল অপ্টিমাইজেশান বাস্তবায়ন করার ক্ষমতা। মডেলটি নিম্ন স্তরের কাঁচা ব্যবহার করে না
সকেট কারণ তারা বহনযোগ্য নয়।

ভবিষ্যৎ হয়া যাই ?
কোনো ঘোষিত পরিকল্পনা নেই।

তথ্যসূত্র
ব্যবহার
উদাহরণ
সাহায্যকারী
আরোপ করা
রচনা
লগিং
আদেশ সহকারে
ভ্যালিডেশন
একক পরীক্ষা
বড় মাপের কর্মক্ষমতা পরীক্ষা

অ্যাপ্লিকেশন


প্লেসহোল্ডার অধ্যায়

ব্রিজ NETDEVICE


প্লেসহোল্ডার অধ্যায়

ব্রিজ নেটডিভাইস ব্যবহারের কিছু উদাহরণ পাওয়া যাবে উদাহরণ/csma/ ডিরেক্টরি.

BRITE সংহতিকরণ


এই মডেলটি BRITE, বোস্টন ইউনিভার্সিটি রিপ্রেজেন্টেটিভ ইন্টারনেটের একটি ইন্টারফেস প্রয়োগ করে
টপোলজি জেনারেটর [1]। BRITE বাস্তবসম্মত ইন্টারনেট তৈরি করার জন্য একটি আদর্শ টুল
টপোলজিস এখানে বর্ণিত ns-3 মডেলটি সুবিধার জন্য একটি সহায়ক শ্রেণী প্রদান করে
BRITE কনফিগারেশন ফাইল ব্যবহার করে ns-3 নির্দিষ্ট টপোলজি তৈরি করা হচ্ছে। BRITE নির্মাণ করে
মূল গ্রাফ যা ns-3 BriteTopolgyHelper ক্লাসে নোড এবং প্রান্ত হিসাবে সংরক্ষণ করা হয়। ভিতরে
BRITE এর ns-3 ইন্টিগ্রেশন, জেনারেটর একটি টপোলজি তৈরি করে এবং তারপর অ্যাক্সেস প্রদান করে
উত্পন্ন প্রতিটি AS জন্য লিফ নোড. ns-3 ব্যবহারকারীরা কাস্টম টপোলজি সংযুক্ত করতে পারেন
এই লিফ নোডগুলিকে ম্যানুয়ালি তৈরি করে অথবা দেওয়া টপোলজি জেনারেটর ব্যবহার করে
ns-3.

BRITE-তে তিনটি প্রধান ধরনের টপোলজি পাওয়া যায়: রাউটার, এএস এবং
হায়ারার্কিক্যাল যা AS এবং রাউটারের সংমিশ্রণ। ns-3 এর উদ্দেশ্যে
সিমুলেশন, সবচেয়ে দরকারী রাউটার এবং হায়ারার্কিক্যাল হতে পারে। রাউটার স্তর
টপোলজিগুলি হয় Waxman মডেল বা Barabasi-Albert মডেল ব্যবহার করে তৈরি করা হয়। প্রতিটি
মডেলের বিভিন্ন পরামিতি রয়েছে যা টপোলজি তৈরিকে প্রভাবিত করে। ফ্ল্যাট রাউটার টপোলজির জন্য,
সমস্ত নোড একই AS হিসাবে বিবেচিত হয়।

BRITE হায়ারার্কিক্যাল টপোলজিতে দুটি স্তর থাকে। প্রথমটি AS স্তর। এই স্তর
Waxman মডেল বা Barabasi-Albert মডেল ব্যবহার করেও তৈরি করা যেতে পারে।
তারপরে AS টপোলজিতে প্রতিটি নোডের জন্য, একটি রাউটার স্তরের টপোলজি তৈরি করা হয়। এইগুলো
রাউটার স্তরের টপোলজি আবার হয় Waxman মডেল বা Barbasi-Albert মডেল ব্যবহার করতে পারে।
BRITE এই পৃথক রাউটার টপোলজিগুলিকে আন্তঃসংযোগ করে যেমন AS স্তর দ্বারা নির্দিষ্ট করা হয়েছে৷
টপোলজি একবার হায়ারার্কিক্যাল টপোলজি তৈরি হয়ে গেলে, এটি একটি বড় আকারে সমতল করা হয়
রাউটার লেভেল টপোলজি।

আরও তথ্য BRITE ব্যবহারকারী ম্যানুয়াল পাওয়া যাবে:
http://www.cs.bu.edu/brite/publications/usermanual.pdf

মডেল বিবরণ
মডেলটি একটি বাহ্যিক BRITE লাইব্রেরি তৈরির উপর নির্ভর করে এবং তারপরে কিছু ns-3 তৈরি করে
সাহায্যকারী যারা লাইব্রেরিতে ডাকে। ns-3 সাহায্যকারীদের জন্য সোর্স কোড থাকে
ডিরেক্টরি src/brite/helper.

নকশা
BRITE টপোলজি তৈরি করতে, ns-3 সাহায্যকারীরা বহিরাগত BRITE লাইব্রেরিতে কল করে, এবং
একটি স্ট্যান্ডার্ড BRITE কনফিগারেশন ফাইল ব্যবহার করে, BRITE কোড নোড সহ একটি গ্রাফ তৈরি করে
এই কনফিগারেশন ফাইল অনুযায়ী প্রান্ত. BRITE ডকুমেন্টেশন বা দেখুন দয়া করে
একটি ভাল উপলব্ধি পেতে src/brite/examples/conf_files-এ উদাহরণ কনফিগারেশন ফাইল
BRITE কনফিগারেশন বিকল্প। BRITE দ্বারা নির্মিত গ্রাফটি ns-3, এবং একটি ns-3-এ ফেরত দেওয়া হয়েছে
গ্রাফ বাস্তবায়ন নির্মিত হয়. প্রতিটি AS-এর জন্য লিফ নোড ব্যবহারকারীর জন্য উপলব্ধ
কাস্টম টপোলজি সংযুক্ত করতে বা সরাসরি ns-3 অ্যাপ্লিকেশন ইনস্টল করতে।

তথ্যসূত্র
[১] আলবার্তো মদিনা, অনুকুল লখিনা, ইব্রাহিম মাত্তা এবং জন বায়ার্স। BRITE: একটি দৃষ্টিভঙ্গি
ইউনিভার্সাল টপোলজি জেনারেশন। আন্তর্জাতিক কর্মশালার কার্যধারায়
কম্পিউটার এবং টেলিকমিউনিকেশন সিস্টেমের মডেলিং, বিশ্লেষণ এবং সিমুলেশন- MASCOTS
'01, সিনসিনাটি, ওহিও, আগস্ট 2001।

ব্যবহার
BRITE ইন্টারফেসের মৌলিক ব্যবহার দেখতে brite-generic-উদাহরণ উল্লেখ করা যেতে পারে। ভিতরে
সারসংক্ষেপ, BriteTopologyHelper একটি BRITE পাস করে ইন্টারফেস পয়েন্ট হিসাবে ব্যবহৃত হয়
কনফিগারেশন ফাইল. কনফিগারেশন ফাইলের সাথে একটি BRITE ফরম্যাটেড এলোমেলো বীজ ফাইল
এছাড়াও পাস করা যেতে পারে। যদি একটি বীজ ফাইল পাস না হয়, সাহায্যকারী একটি বীজ তৈরি করবে
ns-3 এর UniformRandomVariable ব্যবহার করে ফাইল। একবার BRITE দ্বারা টপোলজি তৈরি হয়ে গেলে,
BuildBriteTopology() কে ns-3 উপস্থাপনা তৈরি করতে বলা হয়। পরবর্তী আইপি ঠিকানা হতে পারে
AssignIpv4Addresses() অথবা AssignIpv6Addresses() ব্যবহার করে টপোলজিতে বরাদ্দ করা হয়েছে। এটা
উল্লেখ্য যে টপোলজিতে প্রতিটি পয়েন্ট-টু-পয়েন্ট লিঙ্ক একটি নতুন হিসাবে বিবেচিত হবে
নেটওয়ার্ক তাই IPV4 a/30 সাবনেট ব্যবহার করা উচিত যাতে প্রচুর পরিমাণে অপচয় না হয়
উপলব্ধ ঠিকানা স্থান.

BRITE কনফিগারেশন ফাইলের উদাহরণ /src/brite/examples/conf_files/ এ পাওয়া যাবে।
ASBarbasi এবং ASWaxman হল AS শুধুমাত্র টপোলজির উদাহরণ। RTBarabasi এবং RTWaxman
ফাইলগুলি শুধুমাত্র রাউটারের টপোলজির উদাহরণ। অবশেষে TD_ASBarabasi_RTWaxman
কনফিগারেশন ফাইল হল একটি হায়ারার্কিক্যাল টপোলজির একটি উদাহরণ যা বারবাসি-আলবার্ট ব্যবহার করে
AS স্তরের জন্য মডেল এবং রাউটার স্তরের টপোলজিগুলির প্রতিটির জন্য Waxman মডেল।
এই ফাইলগুলিতে ব্যবহৃত BRITE প্যারামিটারের তথ্য BRITE ব্যবহারকারীর মধ্যে পাওয়া যাবে
ম্যানুয়াল।

ভবন BRITE ইন্টিগ্রেশন
প্রথম ধাপ হল ns-3 নির্দিষ্ট BRITE সংগ্রহস্থল ডাউনলোড এবং তৈরি করা:

$ hg ক্লোন http://code.nsnam.org/BRITE
$cd BRITE
আমি তৈরি

এটি BRITE তৈরি করবে এবং BRITE ডিরেক্টরির মধ্যে একটি লাইব্রেরি, libbrite.so তৈরি করবে।

একবার BRITE সফলভাবে তৈরি হয়ে গেলে, আমরা BRITE সমর্থন সহ ns-3 কনফিগার করতে এগিয়ে যাই।
আপনার ns-3 ডিরেক্টরিতে পরিবর্তন করুন:

$./waf কনফিগার --with-brite=/your/path/to/brite/source --enable-examples

নিশ্চিত করুন যে এটি 'BRITE ইন্টিগ্রেশন' এর পাশে 'সক্ষম' বলেছে। যদি তা না হয়, তাহলে কিছু আছে
ভুল দিকে গেছে. হয় আপনি উপরের ধাপগুলি অনুসরণ করে প্রথমে BRITE তৈরি করতে ভুলে গেছেন, অথবা
ns-3 আপনার BRITE ডিরেক্টরি খুঁজে পায়নি।

পরবর্তী, ns-3 তৈরি করুন:

$./waf

উদাহরণ
BRITE ইন্টিগ্রেশন রান প্রদর্শনের একটি উদাহরণের জন্য:

$ ./waf --run 'brite-generic-example'

ভার্বোস প্যারামিটার সক্রিয় করার মাধ্যমে, উদাহরণটি নোড এবং প্রান্তটি মুদ্রণ করবে
স্ট্যান্ডার্ড BRITE আউটপুটের অনুরূপ বিন্যাসে তথ্য। আরো অনেক আছে
কনফিফাইল, ট্রেসিং এবং নিক্স সহ কমান্ড-লাইন প্যারামিটার, নীচে বর্ণিত:

confFile
একটি BRITE কনফিগারেশন ফাইল। বিভিন্ন BRITE কনফিগারেশন ফাইলের উদাহরণ
src/brite/examples/conf_files ডিরেক্টরিতে বিদ্যমান, উদাহরণস্বরূপ,
RTBarabasi20.conf এবং RTWaxman.conf। অনুগ্রহ করে conf_files ডিরেক্টরি পড়ুন
আরও উদাহরণের জন্য।

রচনা
ascii ট্রেসিং সক্ষম করে।

জলের ভূত নিক্স-ভেক্টর রাউটিং সক্ষম করে। গ্লোবাল রাউটিং ডিফল্টরূপে ব্যবহৃত হয়।

জেনেরিক BRITE উদাহরণ পাইভিজ ব্যবহার করে ভিজ্যুয়ালাইজেশন সমর্থন করে, অনুমান করে পাইথন বাইন্ডিং
ns-3 এ সক্রিয় করা হয়েছে:

$ ./waf --run brite-generic-example --vis

BRITE জড়িত সিমুলেশন MPI এর সাথেও ব্যবহার করা যেতে পারে। MPI দৃষ্টান্তের মোট সংখ্যা
BRITE টপোলজি হেল্পারের কাছে পাঠানো হয় যেখানে নোড বরাদ্দ করার জন্য একটি মডুলো ডিভাইড ব্যবহার করা হয়
প্রতিটি AS থেকে MPI উদাহরণের জন্য। একটি উদাহরণ src/brite/উদাহরণে পাওয়া যাবে:

$ mpirun -np 2 ./waf --run brite-MPI- উদাহরণ

ns-3 এর সাথে MPI সেট আপ করার তথ্যের জন্য অনুগ্রহ করে ns-3 MPI ডকুমেন্টেশন দেখুন।

বিল্ডিং মডিউল


cd.. অন্তর্ভুক্ত:: replace.txt

নকশা ডকুমেন্টেশন
সংক্ষিপ্ত বিবরণ
বিল্ডিং মডিউল প্রদান করে:

1. একটি নতুন ক্লাস (ভবন) যা একটি সিমুলেশনে একটি বিল্ডিংয়ের উপস্থিতি মডেল করে
দৃশ্যকল্প;

2. একটি নতুন ক্লাস (গতিশীলতা বিল্ডিং তথ্য) যা অবস্থান, আকার এবং নির্দিষ্ট করতে দেয়
সিমুলেটেড এলাকায় উপস্থিত বিল্ডিং বৈশিষ্ট্য, এবং বসানো অনুমতি দেয়
ঐ ভবনের ভিতরে নোডের;

3. সবচেয়ে দরকারী প্যাথলস মডেলের সংজ্ঞা সহ একটি ধারক শ্রেণী এবং
সংবাদদাতা ভেরিয়েবল বলা হয় বিল্ডিংসপ্রপাগেশনলস মডেল.

4. একটি নতুন প্রচার মডেল (হাইব্রিড বিল্ডিং প্রপাগেশনলস মডেল) সঙ্গে কাজ
গতিশীলতা মডেল সবেমাত্র চালু, যে ঘটনা মডেল করতে পারবেন
ভবনের উপস্থিতিতে অভ্যন্তরীণ / বহিরঙ্গন প্রচার।

5. একটি সরলীকৃত মডেল শুধুমাত্র ওকুমুরা হাতার সাথে কাজ করে (OhBuildingsPropagationLossModel)
উপস্থিতিতে অভ্যন্তরীণ / বহিরঙ্গন প্রচারের ঘটনা বিবেচনা করে
ভবন।

মডেলগুলি এলটিইকে মাথায় রেখে ডিজাইন করা হয়েছে, যদিও তাদের বাস্তবায়ন বাস্তবে
যেকোনো LTE-নির্দিষ্ট কোড থেকে স্বাধীন, এবং অন্যান্য ns-3 ওয়্যারলেসের সাথে ব্যবহার করা যেতে পারে
প্রযুক্তিও (যেমন, wifi, wimax)।

সার্জারির হাইব্রিড বিল্ডিং প্রপাগেশনলস মডেল প্যাথলস মডেল অন্তর্ভুক্ত একটি মাধ্যমে প্রাপ্ত করা হয়
বিভিন্ন নকল করার জন্য বেশ কয়েকটি সুপরিচিত প্যাথলস মডেলের সংমিশ্রণ
পরিবেশগত পরিস্থিতি যেমন শহুরে, শহরতলির এবং খোলা এলাকা। তাছাড়া মডেল ড
বিবেচনা করে বহিরঙ্গন এবং অন্দর উভয় ইনডোর এবং বহিরঙ্গন যোগাযোগ অন্তর্ভুক্ত করা হয়েছে
যেহেতু HeNB বিল্ডিংয়ের ভিতরে বা বাইরে ইনস্টল করা যেতে পারে। ইনডোরের ক্ষেত্রে
যোগাযোগ, মডেলটিকে বাইরের <-> ইনডোরে বিল্ডিংয়ের ধরণও বিবেচনা করতে হবে
কিছু সাধারণ মানদণ্ড অনুযায়ী যোগাযোগ যেমন প্রাচীর অনুপ্রবেশ ক্ষতি
সাধারণ উপকরণ; তাছাড়া এটি অভ্যন্তরীণ জন্য কিছু সাধারণ কনফিগারেশন অন্তর্ভুক্ত
অভ্যন্তরীণ যোগাযোগের দেয়াল।

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

সার্জারির ভবন শ্রেণী
মডেল নামক একটি নির্দিষ্ট শ্রেণী অন্তর্ভুক্ত ভবন যা একটি ns3 ধারণ করে বক্স জন্য ক্লাস
বিল্ডিং এর মাত্রা সংজ্ঞায়িত করা। এর বৈশিষ্ট্য বাস্তবায়ন করার জন্য
প্যাথলস মডেল অন্তর্ভুক্ত, ভবন ক্লাস নিম্নলিখিত বৈশিষ্ট্য সমর্থন করে:

· ভবনের ধরণ:

· আবাসিক (ডিফল্ট মান)

· দপ্তর

· ব্যবসায়িক

· বাইরের দেয়ালের ধরন

· কাঠ

· ConcreteWithWindows (ডিফল্ট মান)

· উইন্ডোজ ছাড়া কংক্রিট

· স্টোনব্লক

· মেঝের সংখ্যা (ডিফল্ট মান 1, যার অর্থ শুধুমাত্র নিচতলা)

x-অক্ষে কক্ষের সংখ্যা (ডিফল্ট মান 1)

· y-অক্ষে কক্ষের সংখ্যা (ডিফল্ট মান 1)

বিল্ডিং ক্লাস নিম্নলিখিত অনুমানের উপর ভিত্তি করে:

· একটি বিল্ডিং একটি আয়তক্ষেত্রাকার সমান্তরাল পাইপ (যেমন, একটি বাক্স) হিসাবে উপস্থাপিত হয়

· দেয়ালগুলি x, y, এবং z অক্ষের সমান্তরাল

· একটি বিল্ডিংকে কক্ষের একটি গ্রিডে বিভক্ত করা হয়, যা নিম্নলিখিত পরামিতি দ্বারা চিহ্নিত করা হয়:

· তলার সংখ্যা

· x-অক্ষ বরাবর কক্ষের সংখ্যা

· y-অক্ষ বরাবর কক্ষের সংখ্যা

· z অক্ষ হল উল্লম্ব অক্ষ, অর্থাৎ, z অক্ষ বাড়ানোর জন্য মেঝের সংখ্যা বৃদ্ধি পায়
মূল্যবোধ

· x এবং y রুম সূচকগুলি 1 থেকে শুরু হয় এবং x এবং y অক্ষ বরাবর বৃদ্ধি পায়
যথাক্রমে

· একটি বিল্ডিং এর সব কক্ষের মাপ সমান

সার্জারির গতিশীলতা বিল্ডিং তথ্য শ্রেণী
সার্জারির গতিশীলতা বিল্ডিং তথ্য ক্লাস, যা ns3 ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত উদ্দেশ্য, দায়িত্বে
বিল্ডিং সম্পর্কিত একটি নোডের অবস্থান সম্পর্কে তথ্য বজায় রাখা। দ্য
দ্বারা পরিচালিত তথ্য গতিশীলতা বিল্ডিং তথ্য হল:

নোড ইনডোর বা আউটডোর কিনা

· যদি ভিতরে থাকে:

· কোন বিল্ডিংয়ে নোড থাকে

কোন ঘরে নোডটি অবস্থিত (x, y এবং মেঝে ঘরের সূচক)

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

উল্লেখ্য যে, গতিশীলতা বিল্ডিং তথ্য অন্য কোন প্রচার মডেল দ্বারা ব্যবহার করা যেতে পারে.
যাইহোক, এই লেখার সময় তথ্যের উপর ভিত্তি করে, শুধুমাত্র সংজ্ঞায়িত বেশী
বিল্ডিং মডিউলটি দ্বারা প্রবর্তিত সীমাবদ্ধতাগুলি বিবেচনা করার জন্য ডিজাইন করা হয়েছে
ভবন।
g
ItuR1238PropagationLossModel
এই শ্রেণীটি আইটিইউ-এর উপর ভিত্তি করে একটি বিল্ডিং-নির্ভর অন্দর প্রচার ক্ষতির মডেলের এনএমপ্লিমেন্ট করে
P.1238 modeg{ যার মধ্যে বিল্ডিংয়ের প্রকারের (যেমন, আবাসিক, অফিস এবং
বাণিজ্যিক) ia বিশ্লেষণাত্মক অভিব্যক্তি নিম্নলিখিত দেওয়া হয়.
nr
{r
aa
যেখানে: ry ight. : শক্তি ক্ষয়
N = tr}আবাসিক \ 30 এবং অফিস \ 22 এবং বাণিজ্যিক\nd{অ্যারে}
সহগ [dB]
yl ight.
L_f = t } আবাসিক \ 15+4(n-1) এবং অফিস \ 6+3(n-1) এবং বাণিজ্যিক\nd{অ্যারে}
{l
n : বেস স্টেশন এবং মোবাইলের মধ্যে ফ্লোরের সংখ্যা (n 1)
l2
f: ফ্রিকোয়েন্সি [MHz]
}&
d : দূরত্ব (যেখানে d > 1) [মি]
n
বিল্ডিংসপ্রপাগ&ationLossModel
BuildingsPropagationLossModel বিল্ডিং-নির্ভর একটি অতিরিক্ত সেট প্রদান করে
প্যাথলস মডেল উপাদান যা বিভিন্ন প্যাথলস লজিক্স বাস্তবায়ন করতে ব্যবহৃত হয়। এইগুলো
প্যাথলস মডেল উপাদানগুলি নিম্নলিখিত উপধারায় বর্ণিত হয়েছে।

বহিরাগত প্রাচীর ক্ষতি (EWL)
এই উপাদানটি অভ্যন্তরীণ থেকে বাইরের জন্য দেয়ালের মাধ্যমে অনুপ্রবেশের ক্ষতির মডেল করে
যোগাযোগ এবং তদ্বিপরীত। মানগুলি [cost231] মডেল থেকে নেওয়া হয়েছে।

· কাঠ ~ 4 ডিবি

· জানালা সহ কংক্রিট (ধাতুযুক্ত নয়) ~ 7 ডিবি

· জানালা ছাড়া কংক্রিট ~ 15 dB (COST10 এ 20 থেকে 231 এর মধ্যে বিস্তৃত)

· স্টোন ব্লক ~ 12 ডিবি

অভ্যন্তরীণ দেয়াল ক্ষতি (IWL)
এই উপাদানটি ইনডোর-টু-ইনডোর যোগাযোগে অনুপ্রবেশের ক্ষতির মডেল করে
একই ভবনের মধ্যে। প্রতিটি একক অভ্যন্তরীণ অনুমান করে মোট ক্ষতি গণনা করা হয়
প্রাচীর একটি ধ্রুবক অনুপ্রবেশ ক্ষতি L_{siw}, এবং প্রায় দেয়ালের সংখ্যা
ট্রান্সমিটারের মধ্যে ম্যানহাটান দূরত্ব (কক্ষের সংখ্যায়) সঙ্গে অনুপ্রবেশ করা হয়
এবং রিসিভার। বিস্তারিতভাবে, x_1, y_1, x_2, y_2 x বরাবর রুম নম্বর নির্দেশ করুন এবং
ব্যবহারকারী 1 এবং 2 এর জন্য যথাক্রমে y অক্ষ; মোট ক্ষতি L_{IWL} হিসাবে গণনা করা হয়

উচ্চতা লাভ করেন মডেল (HG)
ট্রান্সমিটিং ডিভাইসটি মেঝেতে থাকার কারণে এই উপাদানটি মডেল লাভ করে
ভূমির উপরে. সাহিত্যে [তুর্কমানি] এই লাভকে প্রায় 2 ডিবি হিসাবে মূল্যায়ন করা হয়েছে
প্রতি তল এই লাভ সব অন্দর থেকে বহিরঙ্গন যোগাযোগ প্রয়োগ করা যেতে পারে এবং
তদ্বিপরীত.

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

মডেলটি বিবেচনা করে যে dB-তে ছায়ার ক্ষতির গড় সর্বদা 0। এর জন্য
ভিন্নতা, মডেলটি বিশদভাবে স্ট্যান্ডার্ড বিচ্যুতির তিনটি সম্ভাব্য মান বিবেচনা করে:
ightarrow X_thrm{O}
· বহিরঙ্গন (m_shadowingSigmaOutdoor, ডিফল্ট মান 7 dB)
N(_thrm{O}, ma_thrm{O}^2)।
ightarrow X_thrm{I}
· গৃহমধ্যস্থ (m_shadowingSigmaIndoor, ডিফল্ট মান 10 dB)
N(_thrm{I}, ma_thrm{I}^2)।
ightarrow
· বাইরের দেয়াল অনুপ্রবেশ (m_shadowingSigmaExtWalls, ডিফল্ট মান 5 dB)
X_thrm{W} N(_thrm{W}, ma_thrm{W}^2)

সিমুলেটর নোড অনুযায়ী প্রতিটি সক্রিয় লিঙ্ক প্রতি একটি ছায়া মান তৈরি করে
স্থানান্তর করার জন্য প্রথমবার লিঙ্কটি ব্যবহার করা হয়। থেকে সংক্রমণের ক্ষেত্রে
আউটডোর নোড থেকে ইনডোর নোড, এবং এর বিপরীতে, স্ট্যান্ডার্ড বিচ্যুতি (ma_thrm{IO}) করতে হবে
স্ট্যান্ডার্ডের দ্বিঘাত মানের সমষ্টির বর্গমূল হিসাবে গণনা করা হবে
বহিরঙ্গন নোডের ক্ষেত্রে বিচ্যুতি এবং বাহ্যিক দেয়ালের অনুপ্রবেশের জন্য একটি। এই
এই কারণে যে ছায়া তৈরিকারী উপাদানগুলি প্রতিটি থেকে স্বাধীন
অন্যান্য; সুতরাং, দুটি স্বাধীনের যোগফলের ফলে একটি বন্টনের প্রকরণ
স্বাভাবিক হল প্রকরণের সমষ্টি।

পথ ক্ষতি যুক্তিবিদ্যা
নিম্নলিখিত আমরা দ্বারা বাস্তবায়িত হয় যে বিভিন্ন প্যাথলস যুক্তি বর্ণনা
BuildingsPropagationLossModel থেকে উত্তরাধিকারসূত্রে পাওয়া।

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

· OkumuraHataPropagationLossModel (OH) (ফ্রিকোয়েন্সিতে > 2.3 GHz দ্বারা প্রতিস্থাপিত
Kun2600MhzPropagationLossModel)

· ItuR1411LosPropagationLossModel এবং ItuR1411NlosOverRooftopPropagationLossModel
(আই 1411)

· ItuR1238 প্রপাগেশনলস মডেল (I1238)

বিল্ডিং প্রোপাগেশনলস মডেলের প্যাথলস উপাদান (EWL, HG, IWL)

নিম্নলিখিত ছদ্ম-কোড ব্যাখ্যা করে কিভাবে বিভিন্ন প্যাথলস মডেল উপাদান বর্ণনা করা হয়েছে
উপরে একত্রিত করা হয় হাইব্রিড বিল্ডিং প্রপাগেশনলস মডেল:

যদি (txNode বহিরঙ্গন হয়)
তারপর
যদি (rxNode আউটডোর হয়)
তারপর
যদি (দূরত্ব > 1 কিমি)
তারপর
যদি (rxNode বা txNode ছাদের নীচে থাকে)
তারপর
L = I1411
আর
L = OH
আর
L = I1411
অন্য (rxNode ইনডোর)
যদি (দূরত্ব > 1 কিমি)
তারপর
যদি (rxNode বা txNode ছাদের নীচে থাকে)
L = I1411 + EWL + HG
আর
L = OH + EWL + HG
আর
L = I1411 + EWL + HG
অন্য (txNode ভিতরে আছে)
যদি (rxNode ইনডোর হয়)
তারপর
যদি (একই ভবন)
তারপর
L = I1238 + IWL
আর
L = I1411 + 2*EWL
অন্য (rxNode আউটডোর)
যদি (দূরত্ব > 1 কিমি)
তারপর
যদি (rxNode বা txNode ছাদের নীচে থাকে)
তারপর
L = I1411 + EWL + HG
আর
L = OH + EWL + HG
আর
L = I1411 + EWL

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

ITU-R P.1411 মডেলের জন্য আমরা LOS এবং NLoS উভয় সংস্করণ বিবেচনা করি। বিশেষ করে, আমরা
একটি টিউনযোগ্য থ্রেশহোল্ডের চেয়ে ছোট দূরত্বের জন্য LoS প্রচার বিবেচনা করে
(m_itu1411NlosThreshold) NLoS প্রচারের ক্ষেত্রে, ওভার দ্য রুফ-টপ মডেল
ম্যাক্রো BS এবং SC উভয় মডেলিংয়ের জন্য বিবেচনা করা হয়। NLoS এর ক্ষেত্রে বেশ কিছু
নির্ভরশীল পরামিতিগুলি অন্তর্ভুক্ত করা হয়েছে, যেমন গড় রাস্তার প্রস্থ,
অরিয়েন্টেশন, ইত্যাদি। এই ধরনের প্যারামিটারের মানগুলি অনুযায়ী সঠিকভাবে সেট করতে হবে
বাস্তবায়িত দৃশ্যকল্প, মডেলটি স্থানীয়ভাবে তাদের মান গণনা করে না। কোন ক্ষেত্রে
মান প্রদান করা হয়, স্ট্যান্ডার্ড ব্যবহার করা হয়, মোবাইলের উচ্চতা এবং BS,
যার পরিবর্তে তাদের সততা সরাসরি কোডে পরীক্ষা করা হয় (অর্থাৎ, তাদের হতে হবে
শূন্যের চেয়ে বড়)। নিম্নলিখিত আমরা এর উপাদানের অভিব্যক্তি দিতে
মডেল.

আমরা আরও লক্ষ করি যে বিভিন্ন প্রচার মডেলের ব্যবহার (OH, I1411, I1238 তাদের সাথে
বৈকল্পিক) হাইব্রিডবিল্ডিংসপ্রপাগেশনলস মডেলে
দূরত্ব সাপেক্ষে pathloss. বৈশিষ্ট্যগুলির একটি সঠিক টিউনিং (বিশেষ করে
দূরত্ব থ্রেশহোল্ড বৈশিষ্ট্যগুলি) এই বিচ্ছিন্নতাগুলি এড়াতে পারে। যাইহোক, যেহেতু
প্রতিটি মডেলের আচরণ বিভিন্ন অন্যান্য পরামিতির উপর নির্ভর করে (ফ্রিকোয়েন্সি, নোডের উচ্চতা, ইত্যাদি),
এই থ্রেশহোল্ডগুলির কোনও ডিফল্ট মান নেই যা সব মিলিয়ে বিচ্ছিন্নতা এড়াতে পারে
সম্ভাব্য কনফিগারেশন। সুতরাং, এই পরামিতিগুলির একটি উপযুক্ত টিউনিং এর উপর ছেড়ে দেওয়া হয়েছে
ব্যবহারকারী।

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

বিস্তারিত, ক্লাস OhBuildingsPropagationLossModel নিম্নলিখিত প্যাথলস সংহত করে
মডেল:

· ওকুমুরাহাটা প্রোপাগেশনলস মডেল (ওএইচ)

বিল্ডিং প্রোপাগেশনলস মডেলের প্যাথলস উপাদান (EWL, HG, IWL)

নিম্নলিখিত ছদ্ম-কোড ব্যাখ্যা করে কিভাবে বিভিন্ন প্যাথলস মডেল উপাদান বর্ণনা করা হয়েছে
উপরে একত্রিত করা হয় OhBuildingsPropagationLossModel:

যদি (txNode বহিরঙ্গন হয়)
তারপর
যদি (rxNode আউটডোর হয়)
তারপর
L = OH
অন্য (rxNode ইনডোর)
L = OH + EWL
অন্য (txNode ভিতরে আছে)
যদি (rxNode ইনডোর হয়)
তারপর
যদি (একই ভবন)
তারপর
L = OH + IWL
আর
L = OH + 2*EWL
অন্য (rxNode আউটডোর)
L = OH + EWL

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

ব্যবহারকারী ডকুমেন্টেশন
কিভাবে থেকে ব্যবহার ভবন in a ব্যাজ
এই বিভাগে আমরা একটি সিমুলেশনের মধ্যে বিল্ডিং মডেলের মৌলিক ব্যবহার ব্যাখ্যা করি
প্রোগ্রাম.

অন্তর্ভুক্ত করা দ্য হেডার
আপনার সিমুলেশন প্রোগ্রামের শুরুতে এটি যোগ করুন:

#অন্তর্ভুক্ত

সৃষ্টি a ভবন
উদাহরণ হিসাবে, আসুন একটি আবাসিক 10 x 20 x 10 বিল্ডিং তৈরি করি:

দ্বিগুণ x_min = 0.0;
দ্বিগুণ x_max = 10.0;
দ্বিগুণ y_min = 0.0;
দ্বিগুণ y_max = 20.0;
ডবল z_min = 0.0;
ডবল z_max = 10.0;
Ptr b = CreateObject ();
b->সেট সীমানা (বক্স (x_min, x_max, y_min, y_max, z_min, z_max));
b->সেটবিল্ডিং টাইপ (বিল্ডিং::আবাসিক);
b->SetExtWallsType (Building::ConcreteWithWindows);
b->SetNFloors (3);
b->SetNRoomsX (3);
b->SetNRoomsY (2);

এই বিল্ডিংটিতে তিনটি তলা এবং সমান আকারের কক্ষের একটি অভ্যন্তরীণ 3 x 2 গ্রিড রয়েছে।

সাহায্যকারী ক্লাস GridBuildingAllocator সহজে একটি সেট তৈরি করতে উপলব্ধ
একটি আয়তক্ষেত্রাকার গ্রিডে স্থাপন করা অভিন্ন বৈশিষ্ট্য সহ বিল্ডিং। এখানে একটি উদাহরণ
এটি কিভাবে ব্যবহার করবেন:

Ptr gridBuildingAllocator;
gridBuildingAllocator = CreateObject ();
gridBuildingAllocator->SetAttribute ("GridWidth", UintegerValue (3));
gridBuildingAllocator->SetAttribute ("LengthX", DoubleValue (7));
gridBuildingAllocator->SetAttribute ("LengthY", DoubleValue (13));
gridBuildingAllocator->SetAttribute ("DeltaX", DoubleValue (3));
gridBuildingAllocator->SetAttribute ("DeltaY", DoubleValue (3));
gridBuildingAllocator->SetAttribute ("উচ্চতা", DoubleValue (6));
gridBuildingAllocator->SetBuildingAttribute ("NRoomsX", UintegerValue (2));
gridBuildingAllocator->SetBuildingAttribute ("NRoomsY", UintegerValue (4));
gridBuildingAllocator->SetBuildingAttribute ("NFloors", UintegerValue (2));
gridBuildingAllocator->SetAttribute ("MinX", DoubleValue (0));
gridBuildingAllocator->SetAttribute ("MinY", DoubleValue (0));
gridBuildingAllocator->Create (6);

এটি 3টি ভবনের একটি 2x6 গ্রিড তৈরি করবে, প্রতিটি 7 x 13 x 6 মিটারের ভিতরে 2 x 4 কক্ষ সহ এবং
2 ফোর্স; ভবনগুলি x এবং y উভয় অক্ষে 3 মিটার ব্যবধানে অবস্থিত।

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

গতিশীলতা সাহায্যকারী গতিশীলতা;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
ueNodes.Create (2);
mobility.Install (ueNodes);
বিল্ডিং হেল্পার::ইনস্টল করুন (ueNodes);

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

জায়গা কিছু নোড
আপনি বেশ কয়েকটি পদ্ধতি ব্যবহার করে আপনার সিমুলেশনে নোড স্থাপন করতে পারেন, যা বর্ণনা করা হয়েছে
নিম্নলিখিত

উত্তরাধিকার পজিশনিং পদ্ধতি
সিমুলেশনে নোড স্থাপন করার জন্য যেকোন লিগ্যাসি ns-3 পজিশনিং পদ্ধতি ব্যবহার করা যেতে পারে। দ্য
গুরুত্বপূর্ণ অতিরিক্ত পদক্ষেপ হল উদাহরণস্বরূপ, আপনি এইভাবে ম্যানুয়ালি নোড স্থাপন করতে পারেন:

Ptr mm0 = enbNodes.Get (0)->GetObject ();
Ptr mm1 = enbNodes.Get (1)->GetObject ();
mm0->সেট পজিশন (ভেক্টর (5.0, 5.0, 1.5));
mm1->সেট পজিশন (ভেক্টর (30.0, 40.0, 1.5));

গতিশীলতা সাহায্যকারী গতিশীলতা;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
ueNodes.Create (2);
mobility.Install (ueNodes);
বিল্ডিং হেল্পার::ইনস্টল করুন (ueNodes);
mm0->সেট পজিশন (ভেক্টর (5.0, 5.0, 1.5));
mm1->সেট পজিশন (ভেক্টর (30.0, 40.0, 1.5));

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

বিল্ডিং-নির্দিষ্ট পজিশনিং পদ্ধতি
বিশেষ অবস্থানে নোড স্থাপনের জন্য নিম্নলিখিত অবস্থান বরাদ্দকারী ক্লাস উপলব্ধ
ভবনের ক্ষেত্রে:

· র‍্যান্ডম বিল্ডিং পজিশন অ্যালোকেটার: এলোমেলোভাবে একটি নির্বাচন করে প্রতিটি অবস্থান বরাদ্দ করুন
সমস্ত বিল্ডিংয়ের তালিকা থেকে বিল্ডিং, এবং তারপরে এলোমেলোভাবে ভিতরে একটি অবস্থান বেছে নিন
ভবন.

· র‍্যান্ডমরুম পজিশন অ্যালোকেটার: এলোমেলোভাবে একটি রুম নির্বাচন করে প্রতিটি অবস্থান বরাদ্দ করুন
সমস্ত বিল্ডিংয়ের কক্ষের তালিকা এবং তারপরে এলোমেলোভাবে ভিতরে একটি অবস্থান বেছে নেওয়া
রুম।

· একই রুম পজিশন অ্যালোকেটার: একটি প্রদত্ত NodeContainer ক্রমানুসারে এবং প্রতিটির জন্য চলে
নোড সেই নোডের একই ঘরে এলোমেলোভাবে একটি নতুন অবস্থান বরাদ্দ করে।

· ফিক্সডরুম পজিশন অ্যালোকেটার: একটি এলোমেলো অবস্থানে অভিন্নভাবে বিতরণ করা
একটি নির্বাচিত বিল্ডিংয়ের ভিতরে একটি নির্বাচিত ঘরের আয়তন।

করা দ্য গতিশীলতা মডেল সঙ্গত
গুরুত্বপূর্ণ: যখনই আপনি বিল্ডিং ব্যবহার করেন, আপনাকে আমাদের পরে নিম্নলিখিত কমান্ডটি জারি করতে হবে
সিমুলেশনে সমস্ত নোড এবং বিল্ডিং স্থাপন করেছে:

বিল্ডিং হেল্পার::মেকমোবিলিটি মডেল সামঞ্জস্যপূর্ণ ();

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

বিল্ডিং-সচেতন পথ ক্ষতি মডেল
আপনি একটি সিমুলেশনে বিল্ডিং এবং নোড স্থাপন করার পরে, আপনি একটি বিল্ডিং-সচেতন ব্যবহার করতে পারেন
একটি সিমুলেশনে pathloss মডেল ঠিক একইভাবে আপনি যে কোনও নিয়মিত পথ ক্ষতি ব্যবহার করবেন
মডেল. আপনি যে বেতার মডিউলটি বিবেচনা করছেন তার জন্য এটি কীভাবে করবেন তা নির্দিষ্ট (lte,
wifi, wimax, ইত্যাদি), তাই নির্দিষ্ট জন্য সেই মডেলের ডকুমেন্টেশন পড়ুন
নির্দেশাবলী।

প্রধান কনফিগার বৈশিষ্ট্যাবলী
সার্জারির ভবন ক্লাসের নিম্নলিখিত কনফিগারযোগ্য পরামিতি রয়েছে:

· বিল্ডিংয়ের ধরন: আবাসিক, অফিস এবং বাণিজ্যিক।

· বাইরের দেয়ালের ধরন: কাঠ, কংক্রিট উইথ উইন্ডোজ, কংক্রিট উইদাউট উইন্ডোজ এবং স্টোনব্লক।

· বিল্ডিং সীমানা: ক বক্স বিল্ডিং সীমানা সহ ক্লাস।

· তলার সংখ্যা.

· x-অক্ষ এবং y-অক্ষে কক্ষের সংখ্যা (কক্ষগুলি শুধুমাত্র একটি গ্রিড পদ্ধতিতে স্থাপন করা যেতে পারে)।

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

· নোডটি স্থাপন করা ফ্লোরের সংখ্যা (ডিফল্ট 0)।

· ঘরের গ্রিডে অবস্থান।

সার্জারির বিল্ডিং প্রপাগেশনলস মডেল ক্লাসে নিম্নলিখিত কনফিগারযোগ্য পরামিতি রয়েছে
বৈশিষ্ট্য সিস্টেমের সাথে কনফিগারযোগ্য:

· ফ্রিকোয়েন্সি: রেফারেন্স ফ্রিকোয়েন্সি (ডিফল্ট 2160 MHz), মনে রাখবেন যে ফ্রিকোয়েন্সি সেট করে
তরঙ্গদৈর্ঘ্য স্বয়ংক্রিয়ভাবে সেট করা হয় এবং বিপরীতে)।

· ল্যামডা: তরঙ্গদৈর্ঘ্য (0.139 মিটার, উপরের ফ্রিকোয়েন্সি বিবেচনা করে)।

· শ্যাডোসিগমা আউটডোর: বহিরঙ্গন নোডের জন্য ছায়ার আদর্শ বিচ্যুতি (ডিফল্ট
7.0).

· শ্যাডোসিগমাইনডোর: ইনডোর নোডের জন্য ছায়ার আদর্শ বিচ্যুতি (ডিফল্ট
8.0).

· ShadowSigmaExtWalls: বহিরাগত দেয়ালের কারণে ছায়ার প্রমিত বিচ্যুতি
বহিরঙ্গন থেকে অভ্যন্তরীণ যোগাযোগের জন্য অনুপ্রবেশ (ডিফল্ট 5.0)।

· ছাদের স্তর: বিল্ডিংয়ের ছাদের স্তর মিটারে (ডিফল্ট 20 মিটার)।

· Los2NlosThr: লাইন-অফ-সাইথ এবং এর মধ্যে সুইচিং পয়েন্টের দূরত্বের মান
নন-লাইন-অফ-সাইট প্রপাগেশন মডেল মিটারে (ডিফল্ট 200 মিটার)।

· ITU1411DistanceThr: স্বল্প পরিসরের মধ্যে সুইচিং পয়েন্টের দূরত্বের মান
(ITU 1211) যোগাযোগ এবং দীর্ঘ পরিসর (Okumura Hata) মিটারে (ডিফল্ট 200 মিটার)।

· Mindistance: মূল্যায়নের জন্য দুটি নোডের মধ্যে মিটারে সর্বনিম্ন দূরত্ব
প্যাথলস (এই থ্রেশহোল্ডের আগে উপেক্ষিত বলে বিবেচিত) (ডিফল্ট 0.5 মিটার)।

· পরিবেশ: শহুরে, উপশহর এবং ওপেন এরিয়াসের মধ্যে পরিবেশ পরিস্থিতি (ডিফল্ট
শহুরে)।

· শহরের আকার: ছোট, মাঝারি, বড় (ডিফল্ট বড়) এর মধ্যে শহরের মাত্রা।

হাইব্রিড মোড ব্যবহার করার জন্য, যে ক্লাসটি ব্যবহার করতে হবে তা হল
হাইব্রিডবিল্ডিং মোবিলিটিলস মডেল, যা সঠিক প্যাথলস মডেল নির্বাচনের অনুমতি দেয়
নকশা অধ্যায়ে উপস্থাপিত pathloss যুক্তি অনুযায়ী. যাইহোক, এই সমাধান
সমস্যা আছে যে প্যাথলস মডেল সুইচিং পয়েন্ট কারণে বিচ্ছিন্নতা উপস্থাপন করতে পারে
মডেলের বিভিন্ন বৈশিষ্ট্যের জন্য। এটি নির্দিষ্ট অনুযায়ী বোঝায়
দৃশ্যকল্প, সুইচিংয়ের জন্য ব্যবহৃত থ্রেশহোল্ডটি সঠিকভাবে টিউন করতে হবে। সহজ
OhBuildingMobilityLossModel শুধুমাত্র Okumura Hata মডেল এবং ব্যবহার করে এই সমস্যাটি কাটিয়ে উঠুন
প্রাচীর অনুপ্রবেশ ক্ষতি.

পরীক্ষামূলক ডকুমেন্টেশন
সংক্ষিপ্ত বিবরণ
ns-3 বিল্ডিং প্যাথলস মডিউল পরীক্ষা এবং যাচাই করার জন্য, কিছু পরীক্ষা স্যুট প্রদান করা হয় যা
ns-3 পরীক্ষার ফ্রেমওয়ার্কের সাথে একীভূত। এগুলি চালানোর জন্য, আপনাকে কনফিগার করতে হবে
এইভাবে সিমুলেটর তৈরি করুন:

$ ./waf কনফিগার --enable-tests --enable-modules=buildings
$ ./test.py

উপরোক্ত শুধুমাত্র বিল্ডিং মডিউল অন্তর্গত পরীক্ষা স্যুট চালানো হবে, কিন্তু
অন্যান্য সমস্ত ns-3 মডিউলের অন্তর্গত যাদের উপর বিল্ডিং মডিউল নির্ভর করে। দেখা
পরীক্ষার কাঠামোর জেনেরিক তথ্যের জন্য ns-3 ম্যানুয়াল।

আপনি এইভাবে HTML বিন্যাসে আরও বিস্তারিত প্রতিবেদন পেতে পারেন:

$ ./test.py -w results.html

উপরের কমান্ডটি চালানোর পরে, আপনি খোলার মাধ্যমে প্রতিটি পরীক্ষার জন্য বিস্তারিত ফলাফল দেখতে পারেন
ফাইল ফলাফল.html একটি ওয়েব ব্রাউজার দিয়ে।

আপনি এই কমান্ডটি ব্যবহার করে প্রতিটি পরীক্ষা স্যুট আলাদাভাবে চালাতে পারেন:

$ ./test.py -s test-suite-name

সম্পর্কে আরো বিস্তারিত জানার জন্য test.py এবং ns-3 টেস্টিং ফ্রেমওয়ার্ক, অনুগ্রহ করে ns-3 পড়ুন
ম্যানুয়াল।

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

বিল্ডিং পজিশন বরাদ্দকারী পরীক্ষা
পরীক্ষা স্যুট বিল্ডিং-পজিশন-বন্টনকারী দুটি পরীক্ষার ক্ষেত্রে বৈশিষ্ট্য যা পরীক্ষা করে
যথাক্রমে RandomRoomPositionAllocator এবং SameRoomPositionAllocator সঠিকভাবে কাজ করে। প্রতিটি
পরীক্ষার ক্ষেত্রে পরিচিত স্থানাঙ্কে একটি একক 2x3x2 রুম বিল্ডিং (মোট 12টি কক্ষ) জড়িত থাকে এবং
যথাক্রমে 24 এবং 48 নোড। উভয় পরীক্ষাই পরীক্ষা করে যে প্রতিটিতে বরাদ্দকৃত নোডের সংখ্যা
রুমটি প্রত্যাশিত এবং নোডগুলির অবস্থানটিও সঠিক।

ভবন পথ ক্ষতি পরীক্ষা
পরীক্ষা স্যুট বিল্ডিং-পাথলস-মডেল বিভিন্ন ইউনিট পরীক্ষা প্রদান করে যা তুলনা করে
প্রাক সঙ্গে নির্দিষ্ট পরিস্থিতিতে বিল্ডিং pathloss মডিউল প্রত্যাশিত ফলাফল
একটি অক্টেভ স্ক্রিপ্টের সাথে অফলাইনে প্রাপ্ত গণনা করা মান
(test/reference/buildings-pathloss.m)। দুটি মান থাকলে পরীক্ষায় উত্তীর্ণ বলে বিবেচিত হয়
0.1 এর সহনশীলতার সমান, যা এর সাধারণ ব্যবহারের জন্য উপযুক্ত বলে মনে করা হয়
প্যাথলস মান (যা dB)।

নিম্নলিখিত আমরা বিবেচনা করা পরিস্থিতিতে বিশদ বিবরণ, তাদের নির্বাচন জন্য করা হয়েছে
সম্ভাব্য প্যাথলস লজিক কম্বিনেশনের বিস্তৃত সেট কভার করে। প্যাথলস যুক্তি ফলাফল
তাই পরীক্ষিত।

পরীক্ষা #1 ওকুমুরা ভুল
এই পরীক্ষায় আমরা স্ট্যান্ডার্ড ওকুমুরা হাটা মডেল পরীক্ষা করি; তাই eNB এবং UE উভয়ই স্থাপন করা হয়েছে
বাইরে 2000 মি দূরত্বে। ব্যবহৃত ফ্রিকোয়েন্সি হল E-UTRA ব্যান্ড #5, যা
869 MHz-এর সাথে মিলে যায় (5.5-এর 1-36.101 টেবিল দেখুন)। পরীক্ষা এছাড়াও বৈধতা অন্তর্ভুক্ত
এলাকার সম্প্রসারণ (যেমন, শহুরে, শহরতলির এবং উন্মুক্ত এলাকা) এবং শহরের আকার
(ছোট, মাঝারি এবং বড়)।

পরীক্ষা #2 COST231 মডেল
এই পরীক্ষাটি COST231 মডেলকে যাচাই করার লক্ষ্যে। পরীক্ষাটি ওকুমুরার অনুরূপ
হটা এক, যে ফ্রিকোয়েন্সি ব্যবহার করা হয় তা হল ইউট্রা ব্যান্ড #1 (2140 মেগাহার্টজ) এবং এটি পরীক্ষা
মডেলের কারণে শহুরে পরিস্থিতিতে শুধুমাত্র বড় এবং ছোট শহরগুলির জন্য সঞ্চালিত হতে পারে
সীমাবদ্ধতা।

পরীক্ষা #3 2.6 গিগাহার্জ মডেল
এই পরীক্ষাটি 2.6 GHz Kun মডেলকে বৈধ করে। পরীক্ষা ওকুমুরা হটা এক ছাড়া একই
যে ফ্রিকোয়েন্সি হল EUTRA ব্যান্ড #7 (2620 MHz) এবং পরীক্ষাটি কেবলমাত্র
শহুরে দৃশ্যকল্প।

পরীক্ষা #4 ITU1411 LoS মডেল
এই পরীক্ষাটি রাস্তার মধ্যে দৃষ্টিশক্তির ক্ষেত্রে ITU1411 মডেলকে যাচাই করার লক্ষ্যে
ক্যানিয়ন ট্রান্সমিশন। এই ক্ষেত্রে UE স্থাপন করা হয় 100 মিটার দূরে eNB থেকে, যেহেতু
LoS এবং NLoS-এর মধ্যে স্যুইচ করার জন্য থ্রেশহোল্ড ডিফল্ট এক (অর্থাৎ, 200 মি.) হতে বাকি আছে।

পরীক্ষা #5 ITU1411 এনএলওএস মডেল
এই পরীক্ষার লক্ষ্য হল আইটিইউ1411 মডেলকে যাচাই করা
ছাদে ট্রান্সমিশন। এই ক্ষেত্রে UE কে eNB থেকে 900 মিটার দূরে রাখা হয়েছে, in
LoS এবং NLoS-এর মধ্যে স্যুইচ করার জন্য থ্রেশহোল্ডের উপরে থাকার অর্ডার ডিফল্ট এক হিসাবে ছেড়ে দেওয়া হয়
(অর্থাৎ, 200 মি।)

পরীক্ষা #6 ITUP1238 মডেল
ইনডোর ট্রান্সমিশনের ক্ষেত্রে ITUP1238 মডেলকে যাচাই করার লক্ষ্যে এই পরীক্ষাটি করা হয়েছে। ভিতরে
এই ক্ষেত্রে UE এবং eNB উভয়ই দেয়াল সহ একটি আবাসিক ভবনে স্থাপন করা হয়
জানালা দিয়ে কংক্রিট। Ue দ্বিতীয় তলায় স্থাপন করা হয়েছে এবং দূরত্ব থেকে 30 মিটার দূরে
eNB, যা প্রথম তলায় স্থাপন করা হয়।

পরীক্ষা #7 বহিরঙ্গন -> গৃহমধ্যস্থ সঙ্গে ওকুমুরা ভুল মডেল
এই পরীক্ষাটি বড় দূরত্বের জন্য বহিরঙ্গন থেকে অভ্যন্তরীণ ট্রান্সমিশনকে বৈধ করে। এক্ষেত্রে
UE একটি আবাসিক ভবনে স্থাপন করা হয়েছে যেখানে জানালা সহ কংক্রিটের তৈরি প্রাচীর রয়েছে
বহিরঙ্গন eNB থেকে 2000 মিটার দূরত্ব।

পরীক্ষা #8 বহিরঙ্গন -> গৃহমধ্যস্থ সঙ্গে ITU1411 মডেল
এই পরীক্ষাটি স্বল্প দূরত্বের জন্য বহিরঙ্গন থেকে অভ্যন্তরীণ ট্রান্সমিশনকে বৈধ করে। এক্ষেত্রে
UE একটি আবাসিক ভবনে স্থাপন করা হয়েছে যেখানে জানালা সহ কংক্রিটের দেয়াল রয়েছে
বহিরঙ্গন eNB থেকে 100 মিটার দূরত্ব।

পরীক্ষা #9 গৃহমধ্যস্থ -> বহিরঙ্গন সঙ্গে ITU1411 মডেল
এই পরীক্ষাটি খুব অল্প দূরত্বের জন্য বহিরঙ্গন থেকে অভ্যন্তরীণ ট্রান্সমিশনকে বৈধ করে। এই
ক্ষেত্রে eNB একটি আবাসিক ভবনের দ্বিতীয় তলায় দেয়াল দিয়ে স্থাপন করা হয়
জানালা সহ কংক্রিট এবং আউটডোর UE থেকে 100 মিটার দূরত্ব (যেমন, LoS
যোগাযোগ)। তাই উচ্চতা বৃদ্ধিকে প্যাথলস মূল্যায়নে অন্তর্ভুক্ত করতে হবে।

পরীক্ষা #10 গৃহমধ্যস্থ -> বহিরঙ্গন সঙ্গে ITU1411 মডেল
এই পরীক্ষাটি স্বল্প দূরত্বের জন্য বহিরঙ্গন থেকে অভ্যন্তরীণ ট্রান্সমিশনকে বৈধ করে। এক্ষেত্রে
eNB একটি আবাসিক ভবনের দ্বিতীয় তলায় দেয়াল দিয়ে স্থাপন করা হয়েছে
জানালা সহ কংক্রিট এবং আউটডোর UE থেকে 500 মিটার দূরত্ব (যেমন, NLoS
যোগাযোগ)। তাই উচ্চতা বৃদ্ধিকে প্যাথলস মূল্যায়নে অন্তর্ভুক্ত করতে হবে।

ভবন ছায়াকরণ পরীক্ষা
পরীক্ষা স্যুট ভবন-ছায়া-পরীক্ষা পরিসংখ্যান যাচাই করার উদ্দেশ্যে একটি ইউনিট পরীক্ষা
দ্বারা বাস্তবায়িত ছায়া মডেল বিতরণ বিল্ডিংস প্যাথলস মডেল. ছায়াময়
গড় = 0 এবং পরিবর্তনশীল মান সহ একটি সাধারণ বন্টন অনুসারে মডেল করা হয়
বিচ্যুতি মা, সাধারণত সাহিত্যে ব্যবহৃত মডেল অনুযায়ী। তিনটি টেস্ট কেস
প্রদত্ত, যা ইনডোর, আউটডোর এবং ইনডোর-টু-আউটডোর যোগাযোগের ক্ষেত্রে কভার করে।
প্রতিটি টেস্ট কেস বিভিন্ন জোড়ার জন্য ছায়ার 1000টি ভিন্ন নমুনা তৈরি করে
একটি প্রদত্ত পরিস্থিতিতে গতিশীলতা মডেল উদাহরণ. ছায়া মান বিয়োগ দ্বারা প্রাপ্ত করা হয়
দ্বারা ফেরত মোট ক্ষতি মান থেকে হাইব্রিড বিল্ডিং প্যাথলস মডেল পথ হারানোর উপাদান
যা ধ্রুবক এবং প্রতিটি পরীক্ষার ক্ষেত্রে পূর্ব-নির্ধারিত। পরীক্ষাটি যাচাই করে যে নমুনা
ছায়ার মানগুলির গড় এবং নমুনা পার্থক্য 99% আত্মবিশ্বাসের ব্যবধানের মধ্যে পড়ে
নমুনার গড় এবং নমুনার বৈচিত্র। পরীক্ষাটিও যাচাই করে যে ছায়ার মান
একই জোড়া মোবিলিটি মডেল দৃষ্টান্তের জন্য ধারাবাহিক সময়ে ফিরে আসা ধ্রুবক।

তথ্যসূত্র
[তুর্কমানি]
তুর্কমানি এএমডি, জেডি পার্সন এবং ডিজি লুইস, "এ ভবনগুলিতে রেডিও প্রচার
441, 900 এবং 1400 MHz", 4 সালের ল্যান্ড মোবাইল রেডিওতে 1987র্থ ইন্টারন্যাশনাল কনফারেন্সের প্রক্রিয়ায়।

ক্লিক মোডুলার রাউটার সংহতিকরণ


ক্লিক কনফিগারযোগ্য রাউটার নির্মাণের জন্য একটি সফ্টওয়্যার আর্কিটেকচার। বিভিন্ন ব্যবহার করে
প্যাকেট প্রসেসিং ইউনিটের সমন্বয়ে উপাদান বলা হয়, একটি ক্লিক রাউটার তৈরি করা যেতে পারে
একটি নির্দিষ্ট ধরনের কার্যকারিতা সঞ্চালন। এই নমনীয়তা জন্য একটি ভাল প্ল্যাটফর্ম প্রদান করে
বিভিন্ন প্রোটোকলের সাথে পরীক্ষা এবং পরীক্ষা করা।

মডেল বিবরণ
ক্লিক মডেলের সোর্স কোড ডিরেক্টরিতে থাকে src/ক্লিক করুন.

নকশা
নিম্নলিখিত কারণগুলির কারণে ক্লিকের সাথে একটি সংহতকরণের জন্য ns-3 এর নকশাটি উপযুক্ত:

· ns-3-এর প্যাকেটগুলি স্ট্যাকের উপরে/নীচে সরে যাওয়ার সাথে সাথে সিরিয়ালাইজড/ডিসিরিয়ালাইজড হয়। এই অনুমতি দেয়
ns-3 প্যাকেটগুলি যেভাবে ক্লিক করুন এবং থেকে পাস করতে হবে।

· এর মানে হল যে কোন ধরনের ns-3 ট্রাফিক জেনারেটর এবং পরিবহন সহজে কাজ করা উচিত
ক্লিকের উপরে।

· একটি Ipv4RoutingProtocol উদাহরণ হিসাবে ক্লিক প্রয়োগ করার চেষ্টা করে, আমরা এড়াতে পারি
NS-3 কোডের LL এবং MAC স্তরে উল্লেখযোগ্য পরিবর্তন।

ডিজাইনের লক্ষ্য ছিল ns-3-ক্লিক পাবলিক এপিআইকে ব্যবহারকারীর মতো যথেষ্ট সহজ করে তোলা
নোডে শুধুমাত্র একটি Ipv4ClickRouting উদাহরণ যোগ করতে হবে এবং প্রতিটি ক্লিক নোডকে জানাতে হবে
ক্লিক কনফিগারেশন ফাইলের (.ক্লিক ফাইল) যা এটি ব্যবহার করতে হবে।

এই মডেলটি ক্লিক মডুলার রাউটারে ইন্টারফেস প্রয়োগ করে এবং প্রদান করে
একটি নোড ব্যবহার করার অনুমতি দিতে Ipv4ClickRouting ক্লাস বাহ্যিক রাউটিং এর জন্য ক্লিক করুন। স্বাভাবিকের মতো নয়
Ipv4RoutingProtocol উপ প্রকার, Ipv4ClickRouting একটি RouteInput() পদ্ধতি ব্যবহার করে না, কিন্তু
পরিবর্তে, উপযুক্ত ইন্টারফেসে একটি প্যাকেট গ্রহণ করে এবং সেই অনুযায়ী এটি প্রক্রিয়া করে। বিঃদ্রঃ
ক্লিক ফর ব্যবহার করার জন্য আপনার ক্লিক গ্রাফে একটি রাউটিং টেবিল টাইপ উপাদান থাকতে হবে
বাহ্যিক রাউটিং। এটি উত্তরাধিকারসূত্রে প্রাপ্ত RouteOutput() ফাংশনের দ্বারা প্রয়োজন
আইপিভি 4 রাউটিং প্রোটোকল। উপরন্তু, একটি ক্লিক ভিত্তিক নোড একটি ভিন্ন ধরনের L3 ব্যবহার করে
Ipv4L3ClickProtocol এর ফর্ম, যা Ipv4L3Protocol এর একটি ছাঁটা সংস্করণ।
Ipv4L3ClickProtocol স্ট্যাকের মধ্য দিয়ে যাওয়া প্যাকেটগুলিকে Ipv4ClickRouting-এ পাস করে
প্রক্রিয়াকরণ।

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

তাই, ns-3 এর সাথে ক্লিক ইন্টিগ্রেশনের জন্য, Ipv4ClickRouting নামের একটি ক্লাস পরিচালনা করবে
ক্লিকের সাথে মিথস্ক্রিয়া। একই জন্য কোড পাওয়া যাবে
src/click/model/ipv4-click-routing৷cc,h}.

মোড়ক হাত বন্ধ মধ্যে ns-3 এবং ক্লিক
ns-3 এবং ক্লিকের মধ্যে চার ধরনের প্যাকেট হ্যান্ড-অফ হতে পারে।

· L4 থেকে L3

· L3 থেকে L4

· L3 থেকে L2

· L2 থেকে L3

এটি কাটিয়ে ওঠার জন্য, আমরা Ipv4L3ClickProtocol প্রয়োগ করি, এর একটি ছিনতাই করা সংস্করণ
Ipv4L3 প্রোটোকল। Ipv4L3ClickProtocol Ipv4ClickRouting-এ এবং থেকে প্যাকেট পাস করে
সঠিকভাবে রাউটিং সঞ্চালন.

ব্যাপ্তি এবং সীমাবদ্ধতা
· বর্তমান অবস্থায়, NS-3 ক্লিক ইন্টিগ্রেশন শুধুমাত্র L3 এর সাথে ব্যবহার করার জন্য সীমিত, চলে যাচ্ছে
L3 পরিচালনা করতে NS-2। আমরা বর্তমানে ক্লিক MAC সমর্থন যোগ করার জন্য কাজ করছি। দেখুন
আপনি সেই অনুযায়ী আপনার ক্লিক গ্রাফ ডিজাইন করেছেন তা নিশ্চিত করতে ব্যবহার বিভাগ।

· উপরন্তু, ns-3-ক্লিক শুধুমাত্র ব্যবহারকারীর স্তরের উপাদানগুলির সাথে কাজ করবে। সম্পূর্ণ তালিকা
উপাদান পাওয়া যায় http://read.cs.ucla.edu/click/elements. উপাদান আছে যে
তাদের পাশে উল্লিখিত 'all', 'userlevel' বা 'ns' ব্যবহার করা যেতে পারে।

· এখন পর্যন্ত, ক্লিক করার জন্য ns-3 ইন্টারফেস শুধুমাত্র Ipv4। আমরা Ipv6 সমর্থন যোগ করা হবে
ভবিষ্যৎ.

তথ্যসূত্র
· এডি কোহলার, রবার্ট মরিস, বেঞ্জি চেন, জন জানোটি এবং এম. ফ্রান্স কাশোক। দ্য
মডুলার রাউটার ক্লিক করুন। কম্পিউটার সিস্টেমে ACM লেনদেন 18(3), আগস্ট 2000, পৃষ্ঠা
263-297।

· ললিথ সুরেশ পি., এবং রুবেন মার্জ। Ns-3-ক্লিক: ns-3-এর জন্য মডুলার রাউটার ইন্টিগ্রেশনে ক্লিক করুন।
Proc ইন. NS-3 (WNS3), বার্সেলোনা, স্পেনের 3য় আন্তর্জাতিক ICST কর্মশালার। মার্চ,
2011.

· মাইকেল নিউফেল্ড, আশিস জৈন এবং ডার্ক গ্রুনওয়াল্ড। এনএসক্লিক: ব্রিজিং নেটওয়ার্ক সিমুলেশন
এবং স্থাপনা। MSWiM '02: মডেলিংয়ের উপর 5 তম ACM আন্তর্জাতিক কর্মশালার কার্যক্রম
ওয়্যারলেস এবং মোবাইল সিস্টেমের বিশ্লেষণ এবং সিমুলেশন, 2002, আটলান্টা, জর্জিয়া, মার্কিন যুক্তরাষ্ট্র।
http://doi.acm.org/10.1145/570758.570772

ব্যবহার
ভবন ক্লিক
প্রথম ধাপ হল গিথুব রিপোজিটরি থেকে ক্লিক ক্লোন করা এবং এটি তৈরি করা:

$ git ক্লোন https://github.com/kohler/click
$ cd ক্লিক/
$ ./configure --disable-linuxmodule --enable-nsclick --enable-wifi
আমি তৈরি

আপনি যদি Wifi-এর সাথে ক্লিক ব্যবহার করতে না চান তাহলে --enable-wifi পতাকাটি এড়িয়ে যেতে পারে। *
দ্রষ্টব্য: আপনাকে 'মেক ইন্সটল' করতে হবে না।

ক্লিক সফলভাবে তৈরি হয়ে গেলে, ns-3 ডিরেক্টরিতে পরিবর্তন করুন এবং ns-3 কনফিগার করুন
ক্লিক ইন্টিগ্রেশন সমর্থন সহ:

$ ./waf কনফিগার --enable-examples --enable-tests --with-nsclick=/path/to/click/source

ইঙ্গিত: আপনি যদি ns-3-এর উপরে একটি ডিরেক্টরি ইনস্টল করতে ক্লিক করেন (যেমন ns-3-allinone-এ
ডিরেক্টরি), এবং ডিরেক্টরির নাম হল 'ক্লিক' (বা ডিরেক্টরির একটি প্রতীকী লিঙ্ক
নাম 'ক্লিক'), তারপর --with-nsclick স্পেসিফায়ার আবশ্যক নয়; ns-3 বিল্ড
সিস্টেম সফলভাবে ডিরেক্টরি খুঁজে পাবে।

যদি এটি 'এনএস-3 ক্লিক ইন্টিগ্রেশন সাপোর্ট' এর পাশে 'সক্রিয়' বলে, তাহলে আপনি যেতে পারেন।
দ্রষ্টব্য: মডুলার ns-3 চালানো হলে, সমস্ত ns-3-ক্লিক চালানোর জন্য মডিউলের ন্যূনতম সেট প্রয়োজন
উদাহরণ হল wifi, csma এবং config-store।

পরবর্তী, উদাহরণগুলির একটি চালানোর চেষ্টা করুন:

$ ./waf --run nsclick-simple-lan

তারপরে আপনি ফলস্বরূপ .pcap ট্রেসগুলি দেখতে পারেন, যার নাম দেওয়া হয়েছে nsclick-simple-lan-0-0.pcap
এবং nsclick-simple-lan-0-1.pcap.

ক্লিক চিত্রলেখ নির্দেশনা
আপনার ক্লিক গ্রাফ তৈরি করার সময় নিম্নলিখিতগুলি মনে রাখা উচিত:

শুধুমাত্র ব্যবহারকারী স্তরের উপাদান ব্যবহার করা যেতে পারে।

· আপনাকে FromDevice এবং ToDevice উপাদানগুলি FromSimDevice এবং এর সাথে প্রতিস্থাপন করতে হবে
ToSimDevice উপাদান।

· কার্নেলে প্যাকেট পাঠানো হয় ToSimDevice(tap0,IP) ব্যবহার করে।

· যেকোনো নোডের জন্য, যে ডিভাইসটি কার্নেলে/থেকে প্যাকেট পাঠায়/গ্রহণ করে, তার নাম দেওয়া হয়
'ট্যাপ0'। অবশিষ্ট ইন্টারফেসগুলির নাম eth0, eth1 এবং আরও কিছু হওয়া উচিত (এমনকি যদি আপনি হন
ওয়াইফাই ব্যবহার করে)। অনুগ্রহ করে মনে রাখবেন যে ডিভাইস নম্বরিং 0 থেকে শুরু হওয়া উচিত। ভবিষ্যতে, এটি
নমনীয় করা হবে যাতে ব্যবহারকারীরা তাদের ইচ্ছামত তাদের ক্লিক ফাইলে ডিভাইসের নাম দিতে পারে।

· একটি রাউটিং টেবিল উপাদান একটি বাধ্যতামূলক. রাউটিং টেবিল উপাদানের OUTports উচিত
ডিভাইসটির ইন্টারফেস নম্বরের সাথে মিল রয়েছে যার মাধ্যমে প্যাকেটটি হবে
শেষ পর্যন্ত বাইরে পাঠানো হবে। এই নিয়ম লঙ্ঘন সত্যিই অদ্ভুত প্যাকেট ট্রেস নেতৃত্বে হবে.
এই রাউটিং টেবিল উপাদানের নাম তারপর Ipv4ClickRouting প্রোটোকলে পাস করা উচিত
একটি সিমুলেশন প্যারামিটার হিসাবে বস্তু। বিস্তারিত জানার জন্য ক্লিক উদাহরণ দেখুন.

· বর্তমান বাস্তবায়ন এনএস-৩ হ্যান্ডলিং সহ প্রধানত L3 কার্যকারিতা সহ ক্লিক করুন
L2. আমরা শীঘ্রই ক্লিকেও MAC প্রোটোকলের ব্যবহার সমর্থন করার জন্য কাজ শুরু করব।
এর মানে হল যে এখন পর্যন্ত, ক্লিকের ওয়াইফাই নির্দিষ্ট উপাদানগুলি ns-3 এর সাথে ব্যবহার করা যাবে না।

ডিবাগ করা মোড়ক প্রবাহ থেকে ক্লিক
একটি ক্লিক গ্রাফের মধ্যে যেকোনো বিন্দু থেকে, আপনি মুদ্রণ ব্যবহার করতে পারেন (-
http://read.cs.ucla.edu/click/elements/print) উপাদান এবং সুন্দর মুদ্রণের জন্য এর রূপগুলি
প্যাকেট বিষয়বস্তু. উপরন্তু, আপনি একটি মাধ্যমে প্রবাহিত প্যাকেটের pcap ট্রেস তৈরি করতে পারেন
ToDump ব্যবহার করে গ্রাফে ক্লিক করুন (http://read.cs.ucla.edu/click/elements/todump) উপাদান হিসাবে
আমরা হব. এই ক্ষেত্রে:

myarpquerier
-> প্রিন্ট (fromarpquery,64)
-> ToDump(out_arpquery,PER_NODE 1)
-> ethout;

এবং ... ArpQuerier থেকে প্রবাহিত প্যাকেটের বিষয়বস্তু মুদ্রণ করবে, তারপর একটি উৎপন্ন করবে
pcap ট্রেস ফাইলটিতে ক্লিক ব্যবহার করে প্রতিটি নোডের জন্য 'out_arpquery' প্রত্যয় থাকবে
ফাইল, প্যাকেটগুলিকে 'ethout'-এ পুশ করার আগে।

সাহায্যকারী
একটি নোড রান ক্লিক করার জন্য, সবচেয়ে সহজ উপায় হবে ClickInternetStackHelper ব্যবহার করা
আপনার সিমুলেশন স্ক্রিপ্টে ক্লাস। এই ক্ষেত্রে:

ClickInternetStackHelper ক্লিক করুন;
click.SetClickFile (myNodeContainer, "nsclick-simple-lan.click");
click.SetRoutingTableElement (myNodeContainer, "u/rt");
click.Install (myNodeContainer);

ভিতরে উদাহরণ স্ক্রিপ্ট src/click/examples/ ক্লিক ভিত্তিক নোডের ব্যবহার প্রদর্শন করুন
বিভিন্ন পরিস্থিতিতে। সাহায্যকারী উত্স ভিতরে পাওয়া যাবে
src/click/helper/click-internet-stack-helper।{h,cc}

উদাহরণ
নিম্নলিখিত উদাহরণগুলি লেখা হয়েছে, যা পাওয়া যাবে src/click/examples/:

· nsclick-simple-lan.cc এবং nsclick-raw-wlan.cc: একটি ক্লিক ভিত্তিক নোড একটির সাথে যোগাযোগ করে
সাধারণ ns-3 নোড ক্লিক ছাড়াই, যথাক্রমে Csma এবং Wifi ব্যবহার করে। এটাও প্রমান করে
ক্লিকের উপরে TCP-এর ব্যবহার, যা মূল nsclick বাস্তবায়নের জন্য
NS-2 অর্জন করতে পারেনি।

· nsclick-udp-client-server-csma.cc এবং nsclick-udp-client-server-wifi.cc: একটি 3 নোড LAN
(যথাক্রমে Csma এবং Wifi) যেখানে 2 ক্লিক ভিত্তিক নোড একটি UDP ক্লায়েন্ট চালায়, যা পাঠায়
একটি UDP সার্ভার চলমান একটি তৃতীয় ক্লিক ভিত্তিক নোডে প্যাকেট।

· nsclick-routing.cc: একটি ক্লিক ভিত্তিক নোড তৃতীয় নোডের মাধ্যমে অন্যের সাথে যোগাযোগ করে যা
একটি আইপি রাউটার হিসাবে কাজ করে (আইপি রাউটার ক্লিক কনফিগারেশন ব্যবহার করে)। এটি প্রদর্শন করে
ক্লিক ব্যবহার করে রাউটিং।

স্ক্রিপ্ট মধ্যে উপলব্ধ /conf/ যা আপনাকে ক্লিক ফাইল তৈরি করতে দেয়
কিছু সাধারণ দৃশ্যকল্প। আইপি রাউটার ব্যবহৃত হয় nsclick-routing.cc থেকে উত্পন্ন হয়েছিল
make-ip-conf.pl ফাইল এবং ns-3-ক্লিকের সাথে কাজ করার জন্য সামান্য অভিযোজিত।

ভ্যালিডেশন
এই মডেলটি নিম্নরূপ পরীক্ষা করা হয়েছে:

Ipv4ClickRouting এর অভ্যন্তরীণ যাচাই করার জন্য ইউনিট পরীক্ষা লেখা হয়েছে। এটা হতে পারে
পাওয়া src/click/ipv4-click-routing-test.cc. এই পরীক্ষা পদ্ধতিগুলি কিনা তা যাচাই করে
Ipv4ClickRouting এর ভিতরে যা ডিভাইসের নাম থেকে আইডি, আইপি ঠিকানা থেকে ডিভাইসের নাম নিয়ে কাজ করে
এবং ডিভাইসের নাম বাইন্ডিং থেকে ম্যাক ঠিকানা প্রত্যাশিতভাবে কাজ করে।

· উদাহরণগুলি প্রকৃত সিমুলেশন পরিস্থিতির সাথে ক্লিক পরীক্ষা করার জন্য ব্যবহার করা হয়েছে। এগুলো হতে পারে
পাওয়া src/click/examples/. এই পরীক্ষা নিম্নলিখিত কভার: বিভিন্ন ব্যবহার
ক্লিক, টিসিপি/ইউডিপি, ক্লিক নোডের সাথে যোগাযোগ করতে পারে কিনা
অ-ক্লিক ভিত্তিক নোড, ক্লিক নোডগুলি ক্লিক ব্যবহার করে একে অপরের সাথে যোগাযোগ করতে পারে কিনা
স্ট্যাটিক রাউটিং ব্যবহার করে প্যাকেট রুট করতে।

· ক্লিক Csma, ওয়াইফাই এবং পয়েন্ট-টু-পয়েন্ট ডিভাইসের সাথে পরীক্ষা করা হয়েছে। ব্যবহারের নির্দেশাবলী হল
পূর্ববর্তী বিভাগে উপলব্ধ।

সিএসএমএ NETDEVICE


এটি সিএসএমএ নেটডিভাইস অধ্যায়ের ভূমিকা, সিএসএমএ মডেল ডক্সিজেনের পরিপূরক।

সংক্ষিপ্ত বিবরণ of দ্য সিএসএমএ মডেল
সার্জারির ns-3 CSMA ডিভাইসটি ইথারনেটের চেতনায় একটি সাধারণ বাস নেটওয়ার্ককে মডেল করে। এটা যদিও
আপনি কখনও তৈরি করতে বা কিনতে পারেন এমন কোনও বাস্তব শারীরিক নেটওয়ার্ক মডেল করে না, এটি কিছু সরবরাহ করে
খুব দরকারী কার্যকারিতা।

সাধারণত যখন কেউ বাস নেটওয়ার্ক ইথারনেট বা IEEE 802.3 এর কথা ভাবেন তখন মনে আসে। ইথারনেট
CSMA/CD ব্যবহার করে (ক্যারিয়ার সেন্স মাল্টিপল এক্সেস উইথ কলিশন ডিটেকশন সহ এক্সপোনেনশিয়ালি
শেয়ার্ড ট্রান্সমিশন মাধ্যমের জন্য প্রতিদ্বন্দ্বিতা করার জন্য ব্যাকঅফ বাড়ছে। দ্য ns-3 CSMA ডিভাইস
বিশ্বব্যাপী উপলব্ধ চ্যানেলের প্রকৃতি ব্যবহার করে এই প্রক্রিয়ার শুধুমাত্র একটি অংশ মডেল করে
তাৎক্ষণিক (আলোর চেয়ে দ্রুত) ক্যারিয়ার সেন্স এবং অগ্রাধিকার-ভিত্তিক সংঘর্ষ প্রদান করতে
"পরিহার." ইথারনেটের অর্থে সংঘর্ষ কখনই ঘটে না এবং তাই ns-3 CSMA ডিভাইস
সংঘর্ষ শনাক্তকরণ মডেল করে না, বা প্রগতিশীল কোনো ট্রান্সমিশন "জ্যাম" হবে না।

সিএসএমএ স্তর মডেল
স্তরযুক্ত যোগাযোগের বর্ণনা দেওয়ার জন্য বেশ কয়েকটি প্রচলিত নিয়ম রয়েছে
সাহিত্যে এবং পাঠ্যপুস্তকে আর্কিটেকচার। সবচেয়ে সাধারণ লেয়ারিং মডেল হল
আইএসও সেভেন লেয়ার রেফারেন্স মডেল। এই দৃশ্যে CsmaNetDevice এবং CsmaChannel জোড়া
সর্বনিম্ন দুটি স্তর দখল করে -- ভৌত (স্তর এক) এবং ডেটা লিঙ্কে (স্তর দুই)
অবস্থান আরেকটি গুরুত্বপূর্ণ রেফারেন্স মডেল যা RFC 1122 দ্বারা নির্দিষ্ট করা হয়েছে, "প্রয়োজনীয়তা
ইন্টারনেট হোস্টের জন্য -- যোগাযোগ স্তর।" এই দৃষ্টিতে CsmaNetDevice এবং
CsmaChannel জোড়া সর্বনিম্ন স্তর দখল করে -- লিঙ্ক স্তর। এছাড়াও একটি আপাতদৃষ্টিতে আছে
পাঠ্যপুস্তক এবং সাহিত্যে পাওয়া বিকল্প বর্ণনার অফুরন্ত লিটানি। আমরা
IEEE 802 স্ট্যান্ডার্ডে ব্যবহৃত নামকরণের নিয়মগুলি গ্রহণ করুন যা LLC, MAC, MII এর কথা বলে
এবং PHY লেয়ারিং। এই সংক্ষিপ্ত শব্দগুলিকে সংজ্ঞায়িত করা হয়েছে:

· এলএলসি: লজিক্যাল লিঙ্ক কন্ট্রোল;

· MAC: মিডিয়া অ্যাক্সেস কন্ট্রোল;

· MII: মিডিয়া স্বাধীন ইন্টারফেস;

· PHY: শারীরিক স্তর।

এই ক্ষেত্রে এলএলসি এবং ম্যাক ওএসআই ডেটা লিঙ্ক স্তরের সাবলেয়ার এবং এমআইআই এবং PHY
OSI ভৌত স্তরের উপস্তর।

CSMA ডিভাইসের "শীর্ষ" নেটওয়ার্ক স্তর থেকে ডেটাতে রূপান্তর সংজ্ঞায়িত করে
লিঙ্ক স্তর। এই রূপান্তরটি উচ্চতর স্তর দ্বারা হয় কল করে সঞ্চালিত হয়
CsmaNetDevice::Send বা CsmaNetDevice::SendFrom.

IEEE 802.3 স্ট্যান্ডার্ডের বিপরীতে, CSMA-তে কোনো সুনির্দিষ্টভাবে নির্দিষ্ট PHY নেই
তারের ধরন, সংকেত বা পিনআউট অর্থে মডেল। এর "নীচে" ইন্টারফেস
CsmaNetDevice কে একধরনের মিডিয়া ইন্ডিপেন্ডেন্ট ইন্টারফেস (MII) হিসাবে বিবেচনা করা যেতে পারে যেমন দেখা যায়
"ফাস্ট ইথারনেট" (IEEE 802.3u) স্পেসিফিকেশনে। এই MII ইন্টারফেস একটি মধ্যে ফিট করে
CsmaChannel-এ সংশ্লিষ্ট মিডিয়া স্বাধীন ইন্টারফেস। আপনি খুঁজে পাবেন না
একটি 10BASE-T বা একটি 1000BASE-LX PHY এর সমতুল্য৷

CsmaNetDevice একটি মিডিয়া স্বাধীন ইন্টারফেসের মাধ্যমে CsmaChannel কল করে। সেখানে একটি
পদ্ধতিটি ব্যবহার করে চ্যানেলকে কখন "তারের নাড়াচাড়া করা" শুরু করতে হবে তা বলতে সংজ্ঞায়িত করা হয়েছে
CsmaChannel::TransmitStart, এবং একটি পদ্ধতি চ্যানেলকে জানাতে হবে যখন সংক্রমণ প্রক্রিয়া
সম্পন্ন হয় এবং চ্যানেলটির "তার" জুড়ে শেষ বিটটি প্রচার করা শুরু করা উচিত:
CsmaChannel::TransmitEnd।

যখন TransmitEnd পদ্ধতিটি কার্যকর করা হয়, চ্যানেলটি একটি একক অভিন্ন সংকেত মডেল করবে
মাধ্যমে প্রচার বিলম্ব এবং প্রতিটি ডিভাইসে প্যাকেটের কপি সরবরাহ করে
CsmaNetDevice::রিসিভ পদ্ধতির মাধ্যমে প্যাকেটের সাথে সংযুক্ত।

ডিভাইস মিডিয়া স্বাধীন ইন্টারফেসে "COL" এর সাথে সম্পর্কিত একটি "পিন" আছে
(সংঘর্ষ)। CsmaChannel::GetState কল করে চ্যানেলের অবস্থা অনুধাবন করা যেতে পারে। প্রতিটি
একটি পাঠানো শুরু করার আগে ডিভাইস এই "পিন" দেখবে এবং উপযুক্ত ব্যাকঅফ করবে
প্রয়োজনে অপারেশন।

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

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

CsmaChannel এর তিনটি রাজ্য রয়েছে, অলস, ট্রান্সমিটিং এবং প্রচার করা. এই তিনটি রাজ্য
চ্যানেলের সমস্ত ডিভাইস দ্বারা তাৎক্ষণিকভাবে "দেখা" হয়৷ এই দ্বারা আমরা মানে যে যদি এক
ডিভাইসটি একটি সিমুলেটেড ট্রান্সমিশন শুরু বা শেষ করে, চ্যানেলের সমস্ত ডিভাইস রয়েছে অবিলম্বে
রাষ্ট্রের পরিবর্তন সম্পর্কে সচেতন। এমন কোন সময় নেই যার সময় একটি ডিভাইস একটি দেখতে পারে অলস
চ্যানেলের সময় অন্য ডিভাইস শারীরিকভাবে আরও দূরে সংঘর্ষের ডোমেনে থাকতে পারে
চ্যানেল থেকে অন্যের কাছে প্রচারিত না হওয়া সম্পর্কিত সংকেতগুলির সাথে প্রেরণ করা শুরু করে
ডিভাইস এইভাবে CsmaChannel মডেলে সংঘর্ষ শনাক্তকরণের কোন প্রয়োজন নেই এবং তা হয়
কোনোভাবেই বাস্তবায়িত হয় না।

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

নিষ্ক্রিয় -> ট্রান্সমিটিং -> প্রচার -> নিষ্ক্রিয়

সার্জারির ট্রান্সমিটিং সোর্স নেট ডিভাইসটি প্রকৃতপক্ষে সেই সময়টি স্টেট মডেল
তারে সংকেত wiggling. দ্য প্রচার করা রাষ্ট্র মডেল শেষ বিট পরে সময়
পাঠানো হয়েছিল, যখন সংকেত তারের নিচে প্রচার করছে "দূর প্রান্তে।"

থেকে উত্তরণ ট্রান্সমিটিং রাষ্ট্র একটি কল দ্বারা চালিত হয়
CsmaChannel::TransmitStart যাকে নেট ডিভাইস দ্বারা বলা হয় যা প্যাকেটটি প্রেরণ করে। এটা
একটি কল দিয়ে ট্রান্সমিশন শেষ করা সেই ডিভাইসের দায়িত্ব৷
CsmaChannel::TransmitEnd উপযুক্ত সিমুলেশন সময়ে যা অতিবাহিত সময় প্রতিফলিত করে
তারের উপর প্যাকেট বিট সব করা. যখন TransmitEnd বলা হয়, চ্যানেল
একটি একক গতি-অফ-আলো বিলম্বের সাথে সম্পর্কিত একটি ইভেন্ট নির্ধারণ করে। এই বিলম্ব প্রযোজ্য
চ্যানেলের সমস্ত নেট ডিভাইস একইভাবে। আপনি একটি প্রতিসম হাবের কথা ভাবতে পারেন যার মধ্যে
প্যাকেট বিটগুলি একটি কেন্দ্রীয় অবস্থানে প্রচারিত হয় এবং তারপরে সমান দৈর্ঘ্যের তারগুলি ফিরে আসে
চ্যানেলের অন্যান্য ডিভাইস। একক "আলোর গতি" বিলম্ব তারপর অনুরূপ
এটির জন্য যে সময় লাগে: 1) একটি CsmaNetDevice থেকে তার তারের মাধ্যমে প্রচার করার জন্য একটি সংকেত
কেন্দ্রে; প্লাস 2) একটি পোর্টের বাইরে প্যাকেট ফরোয়ার্ড করতে হাবের সময় লাগে; প্লাস
3) গন্তব্য জালে প্রচারিত সংকেতটির জন্য যে সময় লাগে
যন্ত্র.

CsmaChannel একটি সম্প্রচার মাধ্যম মডেল করে যাতে প্যাকেটটি সমস্ত ডিভাইসে বিতরণ করা হয়
প্রচারের সময় শেষে চ্যানেলে (উৎস সহ)। এটা
এটি একটি প্যাকেট গ্রহণ করে কিনা তা নির্ধারণ করার জন্য প্রেরণকারী ডিভাইসের দায়িত্ব
চ্যানেলে সম্প্রচার।

CsmaChannel নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে:

· ডেটা রেট: সংযুক্ত ডিভাইসে প্যাকেট ট্রান্সমিশনের জন্য বিটরেট;

· বিলম্ব: চ্যানেলের জন্য আলো সংক্রমণ বিলম্বের গতি।

সিএসএমএ নেট যন্ত্র মডেল
CSMA নেটওয়ার্ক ডিভাইসটি কিছুটা ইথারনেট ডিভাইসের মতো দেখায়। CsmaNetDevice
নিম্নলিখিত বৈশিষ্ট্য প্রদান করে:

· ঠিকানা: ডিভাইসের Mac48 ঠিকানা;

সেন্ডএনেবল: সত্য হলে প্যাকেট ট্রান্সমিশন সক্ষম করুন;

· গ্রহণযোগ্য: সত্য হলে প্যাকেট অভ্যর্থনা সক্ষম করুন;

· এনক্যাপসুলেশনমোড: ব্যবহারের জন্য লিঙ্ক লেয়ার এনক্যাপসুলেশনের ধরন;

· RxErrorModel: প্রাপ্ত ত্রুটি মডেল;

· TxQueue: ডিভাইস দ্বারা ব্যবহৃত ট্রান্সমিট সারি;

· ইন্টারফ্রেমগ্যাপ: "ফ্রেম" এর মধ্যে অপেক্ষা করার ঐচ্ছিক সময়;

· Rx: প্রাপ্ত প্যাকেটের জন্য একটি ট্রেস উৎস;

· ড্রপ: ড্রপ প্যাকেটের জন্য একটি ট্রেস উৎস।

CsmaNetDevice একটি "রিসিভ এরর মডেল" এর অ্যাসাইনমেন্ট সমর্থন করে। এই হল একটি
ErrorModel অবজেক্ট যা লিঙ্কে ডেটা দুর্নীতি অনুকরণ করতে ব্যবহৃত হয়।

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

এছাড়াও বৈশিষ্ট্য দ্বারা কনফিগারযোগ্য ডিভাইস দ্বারা ব্যবহৃত encapsulation পদ্ধতি. প্রতি
প্যাকেট একটি ইথারনেটহেডার পায় যাতে গন্তব্য এবং উত্স MAC ঠিকানাগুলি অন্তর্ভুক্ত থাকে এবং
একটি দৈর্ঘ্য/টাইপ ক্ষেত্র। প্রতিটি প্যাকেট একটি ইথারনেটট্রেলারও পায় যার মধ্যে এফসিএস রয়েছে।
প্যাকেটের ডেটা বিভিন্ন উপায়ে এনক্যাপসুলেট করা যেতে পারে।

ডিফল্টরূপে, বা "ডিক্স" এ "এনক্যাপসুলেশনমোড" বৈশিষ্ট্য সেট করে, এনক্যাপসুলেশন হল
ডিইসি, ইন্টেল, জেরক্স মান অনুযায়ী। এটিকে কখনও কখনও ইথারনেটআইআই ফ্রেমিং বলা হয়
এবং পরিচিত গন্তব্য MAC, উৎস MAC, EtherType, Data, CRC বিন্যাস।

যদি "এনক্যাপসুলেশনমোড" অ্যাট্রিবিউটটি "Llc" তে সেট করা থাকে, তাহলে এনক্যাপসুলেশনটি LLC SNAP-এর মাধ্যমে করা হয়। ভিতরে
এই ক্ষেত্রে, একটি SNAP শিরোনাম যোগ করা হয় যাতে EtherType (IP বা ARP) থাকে।

অন্যান্য বাস্তবায়িত এনক্যাপসুলেশন মোড হল IP_ARP ("EncapsulationMode" কে "IpArp" এ সেট করুন)
যেখানে ইথারনেট হেডারের দৈর্ঘ্যের ধরনটি প্রোটোকল নম্বর পায়
প্যাকেট অথবা ETHERNET_V1 ("EncapsulationMode" কে "EthernetV1" এ সেট করুন) যার দৈর্ঘ্যের ধরন
ইথারনেট হেডার প্যাকেটের দৈর্ঘ্য পায়। একটি "কাঁচা" এনক্যাপসুলেশন মোড
সংজ্ঞায়িত কিন্তু বাস্তবায়িত নয় -- RAW মোড ব্যবহারের ফলে একটি দাবী।

মনে রাখবেন যে একটি চ্যানেলের সমস্ত নেট ডিভাইসের জন্য একই এনক্যাপসুলেশন মোডে সেট করা আবশ্যক
সঠিক ফলাফল। এনক্যাপসুলেশন মোড রিসিভারে অনুভূত হয় না।

CsmaNetDevice একটি এলোমেলো সূচকীয় ব্যাকঅফ অ্যালগরিদম প্রয়োগ করে যা কার্যকর করা হয় যদি
চ্যানেল ব্যস্ত হতে সংকল্পবদ্ধ (ট্রান্সমিটিং or প্রচার করা) যখন ডিভাইস চায়
প্রচার শুরু করতে। এর ফলে pow পর্যন্ত র্যান্ডম বিলম্ব হয় (2, পুনরায় চেষ্টা) - 1
পুনরায় চেষ্টা করার আগে মাইক্রোসেকেন্ড। পুনঃপ্রচারের ডিফল্ট সর্বোচ্চ সংখ্যা 1000।

ব্যবহার দ্য CsmaNetDevice
CSMA নেট ডিভাইস এবং চ্যানেলগুলি সাধারণত ব্যবহার করে তৈরি এবং কনফিগার করা হয়
যুক্ত CsmaHelper বস্তু বিভিন্ন ns-3 ডিভাইস সাহায্যকারীরা সাধারণত একই রকম কাজ করে
উপায়, এবং তাদের ব্যবহার আমাদের অনেক উদাহরণ প্রোগ্রামে দেখা যায়।

আগ্রহের ধারণাগত মডেল হল একটি খালি কম্পিউটার "ভুসি" যার মধ্যে আপনি নেট প্লাগ করেন
ডিভাইস খালি কম্পিউটার একটি ব্যবহার করে তৈরি করা হয় নোডকন্টেইনার সাহায্যকারী আপনি শুধু এই জিজ্ঞাসা
যতগুলি কম্পিউটার তৈরি করতে সাহায্যকারী (আমরা তাদের বলি নোড) আপনার নেটওয়ার্কে আপনার প্রয়োজন অনুযায়ী:

NodeContainer csmaNodes;
csmaNodes.Create (nCsmaNodes);

আপনি আপনার নোড আছে একবার, আপনি instantiate একটি প্রয়োজন CsmaHelper এবং আপনার কোন বৈশিষ্ট্য সেট করুন
পরিবর্তন করতে চান.:

CsmaHelper csma;
csma.SetChannelAttribute ("DataRate", StringValue ("100Mbps"));
csma.SetChannelAttribute ("বিলম্ব", টাইমভ্যালু (ন্যানো সেকেন্ড (6560)));

csma.SetDeviceAttribute ("EncapsulationMode", StringValue ("Dix"));
csma.SetDeviceAttribute ("FrameSize", UintegerValue (2000));

বৈশিষ্ট্যগুলি সেট হয়ে গেলে, যা অবশিষ্ট থাকে তা হল ডিভাইসগুলি তৈরি করা এবং সেগুলি ইনস্টল করা
প্রয়োজনীয় নোডগুলি, এবং একটি CSMA চ্যানেল ব্যবহার করে ডিভাইসগুলিকে একসাথে সংযুক্ত করতে। যখন আমরা
নেট ডিভাইসগুলি তৈরি করুন, আমরা সেগুলিকে একটি পাত্রে যুক্ত করি যাতে আপনি ভবিষ্যতে সেগুলি ব্যবহার করতে পারেন৷
এই সব কোড মাত্র এক লাইন লাগে.:

NetDeviceContainer csmaDevices = csma.Install (csmaNodes);

আমরা এই বৈশিষ্ট্যগুলি পরিবর্তন করার বিষয়ে সতর্কতার সাথে চিন্তা করার পরামর্শ দিই, কারণ এটি হতে পারে
এমন আচরণ যা ব্যবহারকারীদের অবাক করে। আমরা এটি অনুমোদন করি কারণ আমরা বিশ্বাস করি নমনীয়তা গুরুত্বপূর্ণ।
বৈশিষ্ট্যগুলি পরিবর্তন করার একটি সম্ভাব্য আশ্চর্যজনক প্রভাবের উদাহরণ হিসাবে, বিবেচনা করুন
নিম্নলিখিত:

Mtu অ্যাট্রিবিউট ডিভাইসে সর্বোচ্চ ট্রান্সমিশন ইউনিট নির্দেশ করে। এই আকার
ডিভাইসটি পাঠাতে পারে এমন বৃহত্তম প্রোটোকল ডেটা ইউনিটের (PDU)। এই বৈশিষ্ট্য ডিফল্ট
1500 বাইটে এবং RFC 894-এ পাওয়া একটি সংখ্যার সাথে মিলে যায়, "এর জন্য একটি স্ট্যান্ডার্ড
ইথারনেট নেটওয়ার্কের মাধ্যমে আইপি ডেটাগ্রামের ট্রান্সমিশন।" নম্বরটি আসলে থেকে নেওয়া হয়েছে
10Base5 (ফুল-স্পেক ইথারনেট) নেটওয়ার্কের জন্য সর্বাধিক প্যাকেটের আকার -- 1518 বাইট। আপনি যদি
ইথারনেট প্যাকেটের জন্য ডিআইএক্স এনক্যাপসুলেশন ওভারহেড বিয়োগ করুন (18 বাইট) আপনি একটি দিয়ে শেষ করবেন
সর্বোচ্চ সম্ভাব্য ডেটা সাইজ (MTU) 1500 বাইটের। এক এছাড়াও খুঁজে পেতে পারেন যে IEEE জন্য MTU
802.3 নেটওয়ার্ক 1492 বাইট। কারণ এলএলসি/এসএনএপি এনক্যাপসুলেশন একটি অতিরিক্ত আট যোগ করে
প্যাকেটে ওভারহেডের বাইট। উভয় ক্ষেত্রে, অন্তর্নিহিত নেটওয়ার্ক হার্ডওয়্যার হয়
1518 বাইটে সীমাবদ্ধ, কিন্তু MTU ভিন্ন কারণ এনক্যাপসুলেশন ভিন্ন।

যদি কেউ Mtu অ্যাট্রিবিউট 1500 বাইটে ছেড়ে দেয় এবং এনক্যাপসুলেশন মোড অ্যাট্রিবিউট পরিবর্তন করে
এলএলসি-তে, ফলাফল হবে একটি নেটওয়ার্ক যা এলএলসি/এসএনএপি সহ 1500 বাইট পিডিইউগুলিকে এনক্যাপসুলেট করে
ফ্রেমিং এর ফলে 1526 বাইটের প্যাকেট হয়। এটা অনেক নেটওয়ার্কে অবৈধ হবে, কিন্তু
আমরা আপনাকে এটি করার অনুমতি দিই। এর ফলে একটি সিমুলেশন যা খুব সূক্ষ্মভাবে প্রতিফলিত হয় না
আপনি কি আশা করছেন যেহেতু একটি বাস্তব ডিভাইস একটি 1526 বাইট প্যাকেট পাঠাতে বাধা দেবে।

এছাড়াও জাম্বো ফ্রেম রয়েছে (1500 < MTU <= 9000 বাইট) এবং সুপার-জাম্বো (MTU > 9000)
বাইট) ফ্রেম যা আনুষ্ঠানিকভাবে IEEE দ্বারা অনুমোদিত নয় কিন্তু কিছুতে উপলব্ধ
উচ্চ-গতির (গিগাবিট) নেটওয়ার্ক এবং NIC. CSMA মডেলে, কেউ ছেড়ে যেতে পারে
এনক্যাপসুলেশন মোড ডিক্সে সেট করুন এবং এমটিউকে 64000 বাইটে সেট করুন -- যদিও একটি সংশ্লিষ্ট
CsmaChannel ডেটারেট 10 মেগাবিট প্রতি সেকেন্ডে রেখে দেওয়া হয়েছিল (অবশ্যই গিগাবিট ইথারনেট নয়)।
এটি মূলত ভ্যাম্পায়ার-ট্যাপড 1980-শৈলীর তৈরি একটি ইথারনেট সুইচের মডেল করবে
10Base5 নেটওয়ার্ক যা সুপার-জাম্বো ডেটাগ্রাম সমর্থন করে, যা অবশ্যই এমন কিছু নয়
কখনও তৈরি করা হয়েছিল, বা কখনও তৈরি হওয়ার সম্ভাবনা নেই; যদিও এটা আপনার জন্য বেশ সহজ
সজ্জিত করা.

CSMA আসলে কি মডেলিং এবং কিভাবে সে সম্পর্কিত অনুমান সম্পর্কে সতর্ক থাকুন
কনফিগারেশন (গুণাবলী) আপনাকে বাস্তবতা থেকে যথেষ্ট দূরে সরে যেতে দেয়।

সিএসএমএ রচনা
মত এক ns-3 ডিভাইস, CSMA মডেল অনেকগুলি ট্রেস উৎস প্রদান করে। এই ট্রেস
উত্সগুলি আপনার নিজস্ব কাস্টম ট্রেস কোড ব্যবহার করে হুক করা যেতে পারে, অথবা আপনি আমাদের সাহায্যকারী ব্যবহার করতে পারেন৷
আপনার নির্দিষ্ট করা ডিভাইসগুলিতে ট্রেসিং সক্ষম করার ব্যবস্থা করার ফাংশন।

উপরের স্তর (ম্যাক) আঙ্গুলসমূহ
নেট ডিভাইসে ট্রেসিংয়ের দৃষ্টিকোণ থেকে, বেশ কয়েকটি আকর্ষণীয় পয়েন্ট রয়েছে
ট্রেস হুক ঢোকাতে অন্যান্য সিমুলেটর থেকে উত্তরাধিকারসূত্রে প্রাপ্ত একটি কনভেনশন হল প্যাকেটগুলি
সংযুক্ত নেটওয়ার্কগুলিতে ট্রান্সমিশনের জন্য নির্ধারিত একটি একক "ট্রান্সমিট কিউ" এর মধ্য দিয়ে যায়৷
নেট ডিভাইস। আমরা প্যাকেট প্রবাহের এই সময়ে ট্রেস হুকগুলি প্রদান করি, যা অনুরূপ
(বিমূর্তভাবে) শুধুমাত্র নেটওয়ার্ক থেকে ডেটা লিঙ্ক স্তরে একটি রূপান্তর করতে এবং তাদের কল করুন
সম্মিলিতভাবে ডিভাইস MAC হুক.

যখন একটি প্যাকেট CSMA নেট ডিভাইসে প্রেরণের জন্য পাঠানো হয় তখন এটি সর্বদা এর মধ্য দিয়ে যায়
ট্রান্সমিট সারি। CsmaNetDevice-এ ট্রান্সমিট সারি সারি থেকে উত্তরাধিকারসূত্রে পাওয়া যায় এবং তাই
তিনটি ট্রেস উত্স উত্তরাধিকারসূত্রে পাওয়া যায়:

· একটি এনকিউ অপারেশন সোর্স (সারি দেখুন::m_traceEnqueue);

· একটি Dequeue অপারেশন উৎস (সারি দেখুন::m_traceDequeue);

· একটি ড্রপ অপারেশন উত্স (সারি দেখুন::m_traceDrop)।

CsmaNetDevice-এর জন্য উপরের-স্তরের (MAC) ট্রেস হুকগুলি আসলে এই তিনটি
ডিভাইসের একক ট্রান্সমিট সারিতে সোর্স ট্রেস করুন।

m_traceEnqueue ইভেন্টটি ট্রিগার হয় যখন একটি প্যাকেট ট্রান্সমিট সারিতে রাখা হয়। এই
এমন সময়ে ঘটে যখন CsmaNetDevice::Send বা CsmaNetDevice::SendFrom একটি দ্বারা কল করা হয়
ট্রান্সমিশনের জন্য একটি প্যাকেট সারিবদ্ধ করার জন্য উচ্চ স্তর।

m_traceDequeue ইভেন্টটি ট্রিগার হয় যখন একটি প্যাকেট ট্রান্সমিট সারি থেকে সরানো হয়।
ট্রান্সমিট সারি থেকে dequeues তিনটি পরিস্থিতিতে ঘটতে পারে: 1) যদি অন্তর্নিহিত
চ্যানেল নিষ্ক্রিয় থাকে যখন CsmaNetDevice::Send বা CsmaNetDevice::SendFrom কল করা হয়, a
ট্রান্সমিট সারি থেকে প্যাকেট সারিবদ্ধ করা হয় এবং অবিলম্বে প্রেরণ করা হয়; 2) যদি
অন্তর্নিহিত চ্যানেল নিষ্ক্রিয়, একটি প্যাকেট সারিবদ্ধ হতে পারে এবং অবিলম্বে একটিতে প্রেরণ করা যেতে পারে
অভ্যন্তরীণ TransmitCompleteEvent যা অনেকটা ট্রান্সমিট কমপ্লিট ইন্টারাপ্টের মত কাজ করে
পরিষেবার রুটিন; অথবা 3) র্যান্ডম এক্সপোনেনশিয়াল ব্যাকঅফ হ্যান্ডলার থেকে যদি একটি টাইমআউট হয়
সনাক্ত.

কেস (3) বোঝায় যে একটি প্যাকেট ট্রান্সমিট সারি থেকে সারিবদ্ধ হয় যদি এটি হতে অক্ষম হয়
ব্যাকঅফ নিয়ম অনুযায়ী প্রেরণ করা হয়। এটা বোঝা গুরুত্বপূর্ণ যে এই ইচ্ছা
একটি সারিবদ্ধ প্যাকেট হিসাবে উপস্থিত হয় এবং প্যাকেটটি ছিল তা ভুলভাবে অনুমান করা সহজ
প্রেরণ করা হয়েছে যেহেতু এটি ট্রান্সমিট সারির মধ্য দিয়ে গেছে। আসলে, একটি প্যাকেট আসলে
এই ক্ষেত্রে নেট ডিভাইস দ্বারা ড্রপ. এই আচরণের কারণ হল
কিউ ড্রপ ইভেন্টের সংজ্ঞা। m_traceDrop ইভেন্টটি, সংজ্ঞা অনুসারে, যখন a
ট্রান্সমিট সারিতে প্যাকেট সারিবদ্ধ করা যাবে না কারণ এটি পূর্ণ। এই ঘটনা শুধুমাত্র আগুন
যদি সারিটি পূর্ণ হয় এবং আমরা এই ইভেন্টটিকে ওভারলোড করি না তা নির্দেশ করার জন্য যে CsmaChannel
"সম্পূর্ণ."

নিম্ন স্তরের (PHY) আঙ্গুলসমূহ
উপরের স্তরের ট্রেস হুকগুলির মতো, নীচের দিকে উপলব্ধ ট্রেস হুক রয়েছে
নেট ডিভাইসের স্তর। আমরা এই PHY হুক কল. এই ঘটনাগুলি ডিভাইস থেকে আগুন
যে পদ্ধতিগুলি সরাসরি CsmaChannel এর সাথে কথা বলে।

ট্রেস সোর্স m_dropTrace কে ডিভাইস দ্বারা ফেলে দেওয়া প্যাকেট নির্দেশ করতে বলা হয়।
এটি দুটি ক্ষেত্রে ঘটে: প্রথমত, যদি নেট ডিভাইসের রিসিভ সাইড সক্রিয় না থাকে
(CsmaNetDevice::m_receiveEnable এবং সংশ্লিষ্ট বৈশিষ্ট্য "ReceiveEnable" দেখুন)।

m_dropTrace এটি নির্দেশ করতেও ব্যবহার করা হয় যে একটি প্যাকেট দুর্নীতিগ্রস্ত হিসাবে বাতিল করা হয়েছে যদি a
প্রাপ্ত ত্রুটি মডেল ব্যবহার করা হয় (দেখুন CsmaNetDevice::m_receiveErrorModel এবং সংশ্লিষ্ট
বৈশিষ্ট্য "ReceiveErrorModel")।

অন্যান্য নিম্ন-স্তরের ট্রেস উত্স একটি স্বীকৃত প্যাকেটের অভ্যর্থনা থেকে আগুন লাগে (দেখুন
CsmaNetDevice::m_rxTrace)। একটি প্যাকেট গৃহীত হয় যদি এটি সম্প্রচারের জন্য নির্ধারিত হয়
ঠিকানা, একটি মাল্টিকাস্ট ঠিকানা, বা নেট ডিভাইসে নির্ধারিত MAC ঠিকানায়।

সারাংশ
ns3 CSMA মডেল হল একটি ইথারনেট-সদৃশ নেটওয়ার্কের একটি সরল মডেল। এটি একটি সমর্থন করে
ক্যারিয়ার-সেন্স ফাংশন এবং একটি ভাগ করা মাধ্যমে একাধিক অ্যাক্সেসের অনুমতি দেয়। এইটা না
শারীরিক অর্থে যে মাধ্যমের অবস্থা তাত্ক্ষণিকভাবে সবার মধ্যে ভাগ করা হয়
ডিভাইস এর মানে হল যে এই মডেলটিতে কোনও সংঘর্ষ সনাক্তকরণের প্রয়োজন নেই এবং কোনওটিই নেই৷
বাস্তবায়িত হয়. ইতিমধ্যে মাঝারি একটি প্যাকেট একটি "জ্যাম" হবে না. অ্যাক্সেস
শেয়ার্ড চ্যানেলটি সিমুলেটর দ্বারা নির্ধারিত হিসাবে আগে আসলে আগে পাবেন ভিত্তিতে
সময়সূচী গ্লোবাল স্টেট দেখে চ্যানেলটি ব্যস্ত থাকতে সংকল্প করলে ক
র্যান্ডম সূচকীয় ব্যাকঅফ সঞ্চালিত হয় এবং একটি পুনরায় চেষ্টা করা হয়।

Ns-3 বৈশিষ্ট্যগুলি ডিভাইসে বিভিন্ন পরামিতি সেট করার জন্য একটি প্রক্রিয়া প্রদান করে এবং
চ্যানেল যেমন ঠিকানা, এনক্যাপসুলেশন মোড এবং ত্রুটি মডেল নির্বাচন। ট্রেস হুক হয়
একটি ট্রান্সমিটের সাথে সম্পর্কিত উপরের স্তরের হুকগুলির একটি সেট সহ স্বাভাবিক পদ্ধতিতে সরবরাহ করা হয়
সারি এবং ASCII ট্রেসিং এ ব্যবহৃত; এবং pcap ট্রেসিং-এ ব্যবহৃত নিম্ন স্তরের হুকের একটি সেট।

যদিও ns-3 CsmaChannel এবং CsmaNetDevice আপনার কোন ধরনের নেটওয়ার্ক মডেল করে না
নির্মাণ বা কিনতে পারে, এটি আমাদের কিছু দরকারী কার্যকারিতা প্রদান করে। তোমার উচিত,
যাইহোক, বুঝুন যে এটি স্পষ্টভাবে ইথারনেট বা IEEE 802.3 এর কোনো স্বাদ নয় বরং একটি
আকর্ষণীয় উপসেট।

তথ্য সংগ্রহ


এই অধ্যায়ে ns-3 ডেটা কালেকশন ফ্রেমওয়ার্ক (DCF) বর্ণনা করা হয়েছে, যা প্রদান করে
সিমুলেটরে মডেল দ্বারা উত্পন্ন ডেটা প্রাপ্ত করার ক্ষমতা, অন-লাইনে সঞ্চালন করার জন্য
হ্রাস এবং তথ্য প্রক্রিয়াকরণ, এবং মার্শাল কাঁচা বা রূপান্তরিত ডেটা বিভিন্ন আউটপুটে
ফরম্যাটের।

ফ্রেমওয়ার্কটি বর্তমানে স্বতন্ত্র NS-3 রান সমর্থন করে যা কোনো বাহ্যিকের উপর নির্ভর করে না
প্রোগ্রাম নির্বাহ নিয়ন্ত্রণ। DCF দ্বারা প্রদত্ত বস্তুগুলিকে হুক করা হতে পারে৷ ns-3 চিহ্ন
তথ্য প্রক্রিয়াকরণ সক্ষম করার জন্য উৎস।

ক্লাসের সোর্স কোড ডিরেক্টরিতে থাকে src/পরিসংখ্যান.

এই অধ্যায় নিম্নরূপ সংগঠিত হয়. প্রথমত, স্থাপত্যের একটি ওভারভিউ হল
উপস্থাপিত পরবর্তী, এই শ্রেণীর জন্য সাহায্যকারী উপস্থাপন করা হয়; এই প্রাথমিক চিকিৎসা
অনেক ব্যবহারের ক্ষেত্রে ডেটা সংগ্রহের কাঠামোর মৌলিক ব্যবহারের অনুমতি দেওয়া উচিত। ব্যবহারকারী যারা
বর্তমান সাহায্যকারীদের সুযোগের বাইরে আউটপুট তৈরি করতে চান, বা যারা তৈরি করতে চান
তাদের নিজস্ব তথ্য সংগ্রহ বস্তু, অধ্যায়ের বাকি পড়া উচিত, যা যায়
সমস্ত মৌলিক DCF অবজেক্টের ধরন সম্পর্কে বিশদভাবে এবং নিম্ন-স্তরের কোডিং প্রদান করে
উদাহরণ।

নকশা
DCF তিনটি মৌলিক শ্রেণী নিয়ে গঠিত:

· প্রোব সিমুলেশন ডেটার আউটপুট যন্ত্র এবং নিয়ন্ত্রণ করার একটি প্রক্রিয়া
আকর্ষণীয় ঘটনা নিরীক্ষণ করতে ব্যবহৃত। এটি এক বা একাধিক আকারে আউটপুট উত্পাদন করে ns-3
উত্স ট্রেস প্রোব বস্তু এক বা একাধিক ট্রেস আপ হুক আপ করা হয় কুন্ড (যাকে বলা হয়
সংগ্রাহক), যা অনলাইনে নমুনা প্রক্রিয়া করে এবং আউটপুটের জন্য প্রস্তুত করে।

· সংগ্রাহক এক বা একাধিক প্রোব অবজেক্ট দ্বারা উত্পন্ন ডেটা ব্যবহার করে। এটি সম্পাদন করে
ডেটাতে রূপান্তর, যেমন স্বাভাবিককরণ, হ্রাস এবং গণনা
মৌলিক পরিসংখ্যান। সংগ্রাহক বস্তু সরাসরি দ্বারা আউটপুট যে তথ্য উত্পাদন করে না
ns-3 রান; পরিবর্তে, তারা ডাটা ডাউনস্ট্রিম অন্য ধরনের অবজেক্টে আউটপুট করে, যাকে বলা হয়
সমষ্টিবিদ, যা সেই ফাংশন সঞ্চালন করে। সাধারণত, সংগ্রাহকরা তাদের ডেটা আউটপুট করে
পাশাপাশি ট্রেস উত্সের ফর্ম, সংগ্রাহকদের সিরিজে শৃঙ্খলিত করার অনুমতি দেয়।

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

এই তিনটি ক্লাসই গতিশীলভাবে নিজেদের চালু বা বন্ধ করার ক্ষমতা প্রদান করে
একটি সিমুলেশন জুড়ে।

যেকোন স্বতন্ত্র ns-3 সিমুলেশন রান যা DCF ব্যবহার করে তা সাধারণত অন্তত একটি তৈরি করবে
উপরের তিনটি শ্রেণীর প্রতিটির উদাহরণ।
[ছবি] ডেটা কালেকশন ফ্রেমওয়ার্ক ওভারভিউ।UNINDENT

তথ্য প্রক্রিয়াকরণের সামগ্রিক প্রবাহ চিত্রিত করা হয়েছে উপাত্ত সংগ্রহ ফ্রেমওয়ার্ক ওভারভিউ.
বাম দিকে, একটি চলমান ns-3 সিমুলেশন চিত্রিত করা হয়। চলাকালীন সময়ে
সিমুলেশন, ডেটা ট্রেস সোর্স বা অন্যান্য উপায়ে মডেল দ্বারা উপলব্ধ করা হয়।
ডায়াগ্রামে দেখানো হয়েছে যে প্রোবগুলি ডেটা প্রাপ্ত করার জন্য এই ট্রেস উত্সগুলির সাথে সংযুক্ত করা যেতে পারে
অ্যাসিঙ্ক্রোনাসভাবে, অথবা প্রোব ডেটার জন্য পোল করতে পারে। ডেটা তারপর একটি সংগ্রাহক বস্তুতে প্রেরণ করা হয়
যে তথ্য রূপান্তরিত. অবশেষে, একটি সংযোজনকারীকে এর আউটপুটগুলির সাথে সংযুক্ত করা যেতে পারে
সংগ্রাহক, প্লট, ফাইল বা ডাটাবেস তৈরি করতে।
[ছবি] ডেটা কালেকশন ফ্রেমওয়ার্ক এগ্রিগেশন।UNINDENT

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

উপাত্ত সংগ্রহ সাহায্যকারী
ডেটা সংগ্রহের কাঠামোর সম্পূর্ণ নমনীয়তা আন্তঃসংযোগ দ্বারা প্রদান করা হয়
প্রোব, সংগ্রাহক এবং সমষ্টির। এই আন্তঃসংযোগ সব সঞ্চালন বাড়ে
ইউজার প্রোগ্রামে অনেক কনফিগারেশন স্টেটমেন্ট। ব্যবহারের সুবিধার জন্য, সবচেয়ে সাধারণ কিছু
অপারেশন একত্রিত করা যেতে পারে এবং সাহায্যকারী ফাংশন মধ্যে encapsulated করা যেতে পারে. উপরন্তু, কিছু
জড়িত বিবৃতি ns-3 সীমাবদ্ধতার কারণে ট্রেস উত্সগুলিতে পাইথন বাইন্ডিং নেই৷
বাঁধাই

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

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

আজ অবধি, দুটি ডেটা সংগ্রহ সহায়ক কার্যকর করা হয়েছে:

· GnuplotHelper

· ফাইল হেল্পার

GnuplotHelper
GnuplotHelper হল gnuplots তৈরি করতে ব্যবহৃত আউটপুট ফাইল তৈরি করার জন্য একটি সহায়ক শ্রেণী। দ্য
সামগ্রিক লক্ষ্য হল ব্যবহারকারীদের রপ্তানিকৃত ডেটা থেকে দ্রুত প্লট তৈরি করার ক্ষমতা প্রদান করা
in ns-3 উত্স ট্রেস ডিফল্টরূপে, একটি ন্যূনতম পরিমাণ তথ্য রূপান্তর সঞ্চালিত হয়;
উদ্দেশ্য হল যত কম (ডিফল্ট) কনফিগারেশন স্টেটমেন্ট সহ প্লট তৈরি করা
সম্ভব.

GnuplotHelper সংক্ষিপ্ত বিবরণ
GnuplotHelper সিমুলেশন শেষে 3টি ভিন্ন ফাইল তৈরি করবে:

একটি স্পেস বিভক্ত gnuplot ডেটা ফাইল

একটি gnuplot কন্ট্রোল ফাইল

gnuplot তৈরি করার জন্য একটি শেল স্ক্রিপ্ট

দুটি কনফিগারেশন স্টেটমেন্ট আছে যা প্লট তৈরি করতে প্রয়োজন। প্রথম
বিবৃতি প্লট কনফিগার করে (ফাইলের নাম, শিরোনাম, কিংবদন্তি, এবং আউটপুট প্রকার, যেখানে আউটপুট
অনির্দিষ্ট থাকলে PNG তে ডিফল্ট টাইপ করুন):

void ConfigurePlot (const std::string &outputFileName WithoutExtension,
const std::string &title,
const std::string &xLegend,
const std::string &yLegend,
const std::string &terminalType = ".png");

দ্বিতীয় বিবৃতিটি আগ্রহের ট্রেস উত্সকে হুক করে:

void PlotProbe (const std::string &typeId,
const std::string &path,
const std::string &probeTraceSource,
const std::string &title);

যুক্তিগুলি নিম্নরূপ:

· টাইপআইডি: The ns-3 প্রোবের টাইপআইডি

· পথ: পথ ns-3 এক বা একাধিক ট্রেস উৎসে কনফিগারেশন নামস্থান

প্রোবট্রেসসোর্স: প্রোবের কোন আউটপুট (নিজেই একটি ট্রেস সোর্স) প্লট করা উচিত

শিরোনাম: ডেটাসেট(গুলি) এর সাথে যুক্ত করার শিরোনাম (গ্নুপ্লট কিংবদন্তিতে)

উপরের প্লটপ্রোবের একটি বৈকল্পিক হল একটি পঞ্চম ঐচ্ছিক যুক্তি নির্দিষ্ট করা যা নিয়ন্ত্রণ করে
যেখানে প্লটে কী (কিংবদন্তি) স্থাপন করা হয়েছে।

একটি সম্পূর্ণরূপে কাজ করা উদাহরণ (থেকে সপ্তম.সিসি) নীচে দেখানো হয়েছে:

// gnuplot সহায়ক তৈরি করুন।
GnuplotHelper plotHelper;

// প্লট কনফিগার করুন।
// প্লট কনফিগার করুন। প্রথম যুক্তি হল ফাইলের নাম উপসর্গ
// উৎপন্ন আউটপুট ফাইলের জন্য। দ্বিতীয়, তৃতীয় এবং চতুর্থ
// আর্গুমেন্ট হল, যথাক্রমে, প্লট শিরোনাম, x-অক্ষ, এবং y-অক্ষ লেবেল
plotHelper.ConfigurePlot ("সপ্তম-প্যাকেট-বাইট-গণনা",
"প্যাকেট বাইট কাউন্ট বনাম সময়",
"সময় (সেকেন্ড)",
"প্যাকেট বাইট কাউন্ট",
"png");

// প্রোবের ধরন, ট্রেস সোর্স পাথ (কনফিগারেশন নামস্থানে) উল্লেখ করুন, এবং
প্লট করার জন্য // প্রোব আউটপুট ট্রেস সোর্স ("আউটপুটবাইটস")। চতুর্থ যুক্তি
// প্লটে ডেটা সিরিজ লেবেলের নাম উল্লেখ করে। গত
// আর্গুমেন্ট কীটি কোথায় স্থাপন করা উচিত তা উল্লেখ করে প্লট ফর্ম্যাট করে।
plotHelper.PlotProbe (probeType,
ট্রেসপথ,
"আউটপুটবাইটস",
"প্যাকেট বাইট কাউন্ট",
GnuplotAggregator::KEY_BELOW);

এই উদাহরণে, প্রোব টাইপ এবং ট্রেসপথ নিম্নরূপ (IPv4 এর জন্য):

probeType = "ns3::Ipv4PacketProbe";
tracePath = "/NodeList/*/$ns3::Ipv4L3Protocol/Tx";

এই সাহায্যকারীর কাজ করার জন্য probeType হল একটি মূল পরামিতি। এই TypeId নিবন্ধিত করা আবশ্যক
সিস্টেমে, এবং প্রোবের ট্রেস সিঙ্কের স্বাক্ষর অবশ্যই ট্রেসের সাথে মেলে
উত্স এটি আবদ্ধ করা হচ্ছে. প্রোবের প্রকারগুলি অনেকগুলি ডেটা প্রকারের জন্য পূর্ব-নির্ধারিত
সংশ্লিষ্ট ns-3 ট্রেস করা মান, এবং আরও কয়েকটি ট্রেস সোর্স স্বাক্ষরের জন্য যেমন
'Tx' এর ট্রেস উৎস ns3::Ipv4L3 প্রোটোকল বর্গ.

উল্লেখ্য যে ট্রেস সোর্স পাথে ওয়াইল্ডকার্ড থাকতে পারে। এই ক্ষেত্রে, একাধিক
ডেটাসেটগুলি একটি প্লটে প্লট করা হয়; প্রতিটি মিলে যাওয়া পথের জন্য একটি।

উত্পাদিত প্রধান আউটপুট তিনটি ফাইল হবে:

সপ্তম-প্যাকেট-বাইট-কাউন্ট.ড্যাট
সপ্তম-প্যাকেট-বাইট-কাউন্ট.plt
সপ্তম-প্যাকেট-বাইট-কাউন্ট.শ

এই মুহুর্তে, ব্যবহারকারীরা আরও কাস্টমাইজেশনের জন্য .plt ফাইলটি সম্পাদনা করতে পারেন, অথবা
শুধু gnuplot এর মাধ্যমে এটি চালান। চলমান sh সপ্তম-প্যাকেট-বাইট-কাউন্ট.শ সহজভাবে চক্রান্ত চালায়
gnuplot এর মাধ্যমে, যেমন নীচে দেখানো হয়েছে।
[ছবি] 2-ডি গ্নুপ্লট সপ্তম.সিসি উদাহরণ দ্বারা তৈরি করা হয়েছে..UNINDENT

এটি দেখা যায় যে মূল উপাদানগুলি (লেজেন্ড, শিরোনাম, কিংবদন্তি বসানো, xlabel, ylabel,
এবং ডেটার জন্য পাথ) সমস্ত প্লটে স্থাপন করা হয়। যেহেতু সেখানে দুটি ম্যাচ ছিল
প্রদত্ত কনফিগারেশন পাথ, দুটি ডেটা সিরিজ দেখানো হয়েছে:

· প্যাকেট বাইট কাউন্ট-0 /NodeList/0/$ns3::Ipv4L3Protocol/Tx এর সাথে মিলে যায়

· প্যাকেট বাইট কাউন্ট-1 /NodeList/1/$ns3::Ipv4L3Protocol/Tx এর সাথে মিলে যায়

GnuplotHelper কনফিগারপ্লট
GnuplotHelper এর কনফিগারপ্লট() ফাংশন প্লট কনফিগার করতে ব্যবহার করা যেতে পারে।

এটির নিম্নলিখিত প্রোটোটাইপ রয়েছে:

void ConfigurePlot (const std::string &outputFileName WithoutExtension,
const std::string &title,
const std::string &xLegend,
const std::string &yLegend,
const std::string &terminalType = ".png");

এটিতে নিম্নলিখিত যুক্তি রয়েছে:

┌───────────────────────────────┬───────────────── ─────────────────┐
│যুক্তি │ বর্ণনা │
├───────────────────────────────┼───────────────── ─────────────────┤
│outputFileNameWithoutExtension │ gnuplot সম্পর্কিত ফাইলের নাম │
│ │ কোনো এক্সটেনশন ছাড়াই লিখুন। │
├───────────────────────────────┼───────────────── ─────────────────┤
│title │ প্লট শিরোনাম স্ট্রিং │ এর জন্য ব্যবহার করতে হবে
│ │ এই চক্রান্ত. │
└───────────────────────────────┴───────────────── ─────────────────┘

│xLegend │ x অনুভূমিক │ জন্য কিংবদন্তি
│ │ অক্ষ। │
├───────────────────────────────┼───────────────── ─────────────────┤
│yLegend │ y উল্লম্ব │ এর জন্য কিংবদন্তি
│ │ অক্ষ। │
├───────────────────────────────┼───────────────── ─────────────────┤
│টার্মিনাল টাইপ │ টার্মিনাল টাইপ সেটিং স্ট্রিং │ এর জন্য
│ │ আউটপুট। ডিফল্ট টার্মিনাল │
│ │ প্রকার "png"। │
└───────────────────────────────┴───────────────── ─────────────────┘

GnuplotHelper এর কনফিগারপ্লট() ফাংশন এর জন্য প্লট সম্পর্কিত পরামিতি কনফিগার করে
gnuplot helper যাতে এটি একটি স্পেস বিভক্ত gnuplot নামে ডেটা ফাইল তৈরি করবে
outputFileNameWithoutExtension + ".dat", নামের একটি gnuplot কন্ট্রোল ফাইল
outputFileNameWithoutExtension + ".plt", এবং gnuplot নামের একটি শেল স্ক্রিপ্ট তৈরি করুন
outputFileNameWithoutExtension + ".sh"।

এই ফাংশনটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ তে দেখা যাবে সপ্তম.সিসি উপরে বর্ণিত কোড
যেখানে এটি নিম্নরূপ ব্যবহার করা হয়েছিল:

plotHelper.ConfigurePlot ("সপ্তম-প্যাকেট-বাইট-গণনা",
"প্যাকেট বাইট কাউন্ট বনাম সময়",
"সময় (সেকেন্ড)",
"প্যাকেট বাইট কাউন্ট",
"png");

GnuplotHelper প্লটপ্রোব
GnuplotHelper এর প্লটপ্রোব() ফাংশন প্রোব দ্বারা উত্পন্ন মান প্লট করতে ব্যবহার করা যেতে পারে।

এটির নিম্নলিখিত প্রোটোটাইপ রয়েছে:

void PlotProbe (const std::string &typeId,
const std::string &path,
const std::string &probeTraceSource,
const std::string &title,
enum GnuplotAggregator::KeyLocation keyLocation = GnuplotAggregator::KEY_INSIDE);

এটিতে নিম্নলিখিত যুক্তি রয়েছে:

┌─────────────────┬─────────────────────────────── ───┐
│যুক্তি │ বর্ণনা │
├─────────────────┼─────────────────────────────── ───┤
│typeId │ প্রোবের জন্য টাইপ ID │
│ │ এই সাহায্যকারী দ্বারা তৈরি. │
├─────────────────┼─────────────────────────────── ───┤
│পাথ │ ট্রেস অ্যাক্সেস করার জন্য পাথ কনফিগার করুন │
│ │ উৎস। │
├─────────────────┼─────────────────────────────── ───┤
│probeTraceSource │ প্রোবের ট্রেস সোর্স │ এ
│ │ অ্যাক্সেস। │
├─────────────────┼─────────────────────────────── ───┤
│শিরোনাম │ শিরোনামটি │ এর সাথে যুক্ত করা হবে৷
│ │ এই ডেটাসেট │
├─────────────────┼─────────────────────────────── ───┤
│কী অবস্থান │ │-এ কীটির অবস্থান
│ │ প্লট। ডিফল্ট অবস্থান হল │৷
│ │ ভিতরে। │
└─────────────────┴─────────────────────────────── ───┘

GnuplotHelper এর প্লটপ্রোব() ফাংশন হুকিং দ্বারা উত্পন্ন একটি ডেটাসেট প্লট করে ns-3
হেল্পার দ্বারা তৈরি একটি প্রোবের সাহায্যে উত্স ট্রেস করুন এবং তারপর থেকে মানগুলি প্লট করুন৷
probeTraceSource. ডেটাসেটের প্রদত্ত শিরোনাম থাকবে এবং এতে থাকবে
প্রতিটি টাইমস্ট্যাম্পে 'newValue'।

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

এই ফাংশনটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ তে দেখা যাবে সপ্তম.সিসি উপরে বর্ণিত কোড
যেখানে এটি ব্যবহার করা হয়েছিল (ভেরিয়েবল প্রতিস্থাপন সহ) নিম্নরূপ:

plotHelper.PlotProbe ("ns3::Ipv4PacketProbe",
"/NodeList/*/$ns3::Ipv4L3Protocol/Tx",
"আউটপুটবাইটস",
"প্যাকেট বাইট কাউন্ট",
GnuplotAggregator::KEY_BELOW);

অন্যান্য উদাহরণ
জ্ঞানপ্লট সাহায্যকারী উদাহরণ
তুলনায় একটি সামান্য সহজ উদাহরণ সপ্তম.সিসি উদাহরণ পাওয়া যাবে
src/stats/examples/gnuplot-helper-example.cc. নিম্নলিখিত 2-D gnuplot ব্যবহার করে তৈরি করা হয়েছিল
উদাহরণ.
[ছবি] 2-ডি গ্নুপ্লট gnuplot-helper-example.cc দ্বারা নির্মিত উদাহরণ..UNINDENT

এই উদাহরণে, একটি ইমিটার অবজেক্ট আছে যা a অনুযায়ী তার কাউন্টার বৃদ্ধি করে
পয়সন প্রক্রিয়া এবং তারপর একটি ট্রেস উৎস হিসাবে কাউন্টারের মান নির্গত করে।

Ptr emitter = CreateObject ();
নাম::অ্যাড ("/নাম/ইমিটার", ইমিটার);

উল্লেখ্য যে নীচে ব্যবহৃত পথে কোনো ওয়াইল্ডকার্ড না থাকায় শুধুমাত্র ১টি ডেটাস্ট্রিম ছিল
প্লটে আঁকা। প্লটে এই একক ডাটাস্ট্রিমটি কেবল "ইমিটার কাউন্ট" লেবেলযুক্ত।
পথের মধ্যে ওয়াইল্ডকার্ড আছে কিনা তা দেখতে পাবে এমন কোনো অতিরিক্ত প্রত্যয় ছাড়াই।

// gnuplot সহায়ক তৈরি করুন।
GnuplotHelper plotHelper;

// প্লট কনফিগার করুন।
plotHelper.ConfigurePlot ("gnuplot-helper-example",
"ইমিটার কাউন্টস বনাম সময়",
"সময় (সেকেন্ড)",
"ইমিটার কাউন্ট",
"png");

// প্রোবের দ্বারা উত্পন্ন মানগুলি প্লট করুন। পথ যে আমরা প্রদান
// ট্রেসের উৎসকে দ্ব্যর্থহীন করতে সাহায্য করে।
plotHelper.PlotProbe ("ns3::Uinteger32Probe",
"/নাম/ইমিটার/কাউন্টার",
"আউটপুট",
"ইমিটার কাউন্ট",
GnuplotAggregator::KEY_INSIDE);

ফাইল হেল্পার
FileHelper হল একটি সহায়ক শ্রেণী যা একটি ফাইলে ডেটা মান রাখতে ব্যবহৃত হয়। সার্বিক লক্ষ্য হল
রপ্তানি করা ডেটা থেকে ব্যবহারকারীদের দ্রুত ফর্ম্যাট করা টেক্সট ফাইল তৈরি করার ক্ষমতা প্রদান করতে
in ns-3 উত্স ট্রেস ডিফল্টরূপে, একটি ন্যূনতম পরিমাণ তথ্য রূপান্তর সঞ্চালিত হয়;
উদ্দেশ্য হল কয়েকটি (ডিফল্ট) কনফিগারেশন স্টেটমেন্ট সহ ফাইল তৈরি করা
সম্ভব.

ফাইল হেল্পার সংক্ষিপ্ত বিবরণ
ফাইলহেল্পার সিমুলেশনের শেষে 1 বা তার বেশি টেক্সট ফাইল তৈরি করবে।

FileHelper 4টি বিভিন্ন ধরনের টেক্সট ফাইল তৈরি করতে পারে:

· বিন্যাসিত

· স্থান পৃথক করা হয়েছে (ডিফল্ট)

· কমা পৃথক করা হয়েছে

· ট্যাব আলাদা করা হয়েছে

ফর্ম্যাট করা ফাইলগুলি তাদের মুদ্রণের জন্য C-স্টাইল ফর্ম্যাট স্ট্রিং এবং sprintf() ফাংশন ব্যবহার করে
ফাইলের মান লেখা হচ্ছে।

নিম্নলিখিত টেক্সট ফাইল 2 কলাম ফরম্যাট মান নাম দিয়ে
সপ্তম-প্যাকেট-বাইট-কাউন্ট-0.txt আরও নতুন কোড ব্যবহার করে তৈরি করা হয়েছিল যা যোগ করা হয়েছিল
মূল ns-3 টিউটোরিয়াল উদাহরণ এর কোড. এই ফাইলের শুধুমাত্র প্রথম 10 লাইন দেখানো হয়
এখানে সংক্ষিপ্ততার জন্য।

সময় (সেকেন্ড) = 1.000e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.004e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.004e+00 প্যাকেট বাইট সংখ্যা = 576
সময় (সেকেন্ড) = 1.009e+00 প্যাকেট বাইট সংখ্যা = 576
সময় (সেকেন্ড) = 1.009e+00 প্যাকেট বাইট সংখ্যা = 576
সময় (সেকেন্ড) = 1.015e+00 প্যাকেট বাইট সংখ্যা = 512
সময় (সেকেন্ড) = 1.017e+00 প্যাকেট বাইট সংখ্যা = 576
সময় (সেকেন্ড) = 1.017e+00 প্যাকেট বাইট সংখ্যা = 544
সময় (সেকেন্ড) = 1.025e+00 প্যাকেট বাইট সংখ্যা = 576
সময় (সেকেন্ড) = 1.025e+00 প্যাকেট বাইট সংখ্যা = 544

...

নিম্নলিখিত বিভিন্ন টেক্সট ফাইল 2 কলাম ফরম্যাট মান নাম দিয়ে
সপ্তম-প্যাকেট-বাইট-কাউন্ট-1.txt একই নতুন কোড ব্যবহার করে তৈরি করা হয়েছিল যা যোগ করা হয়েছিল
মূল ns-3 টিউটোরিয়াল উদাহরণ এর কোড. এই ফাইলের শুধুমাত্র প্রথম 10 লাইন দেখানো হয়
এখানে সংক্ষিপ্ততার জন্য।

সময় (সেকেন্ড) = 1.002e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.007e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.013e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.020e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.028e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.036e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.045e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.053e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.061e+00 প্যাকেট বাইট সংখ্যা = 40
সময় (সেকেন্ড) = 1.069e+00 প্যাকেট বাইট সংখ্যা = 40

...

দুটি পাঠ্য ফাইল তৈরি করতে যে নতুন কোডটি যুক্ত করা হয়েছিল তা নীচে রয়েছে। সম্পর্কে আরো বিস্তারিত
এই API পরবর্তী বিভাগে কভার করা হবে।

মনে রাখবেন যে পথটিতে ওয়াইল্ডকার্ডের জন্য 2টি মিল ছিল, 2টি পৃথক পাঠ্য ফাইল
সৃষ্টি করেছিল. প্রথম টেক্সট ফাইল, যার নাম "seventh-packet-byte-count-0.txt",
ওয়াইল্ডকার্ড ম্যাচের সাথে মিলে যায় "*" এর পরিবর্তে "0" এর সাথে। দ্বিতীয় টেক্সট ফাইল,
যার নাম "seventh-packet-byte-count-1.txt", এর সাথে ওয়াইল্ডকার্ড মিলের সাথে মিলে যায়
"*" "1" দিয়ে প্রতিস্থাপিত হয়েছে। এছাড়াও, ফাংশন কল যে নোট WriteProbe() একটি দেবে
ওয়াইল্ডকার্ড ধারণ করে এমন একটি পথের জন্য কোনো মিল না থাকলে ত্রুটি বার্তা।

// ফাইল হেল্পার তৈরি করুন।
ফাইলহেল্পার ফাইলহেল্পার;

// লেখার জন্য ফাইল কনফিগার করুন।
fileHelper.ConfigureFile ("সপ্তম-প্যাকেট-বাইট-গণনা",
ফাইল অ্যাগ্রিগেটর::ফরম্যাটেড);

// এই ফর্ম্যাট করা আউটপুট ফাইলের জন্য লেবেল সেট করুন।
fileHelper.Set2dFormat ("সময় (সেকেন্ড) = %.3e\tপ্যাকেট বাইট কাউন্ট = %.0f");

// প্রোবের দ্বারা উত্পন্ন মানগুলি লিখুন।
fileHelper.WriteProbe ("ns3::Ipv4PacketProbe",
"/NodeList/*/$ns3::Ipv4L3Protocol/Tx",
"আউটপুটবাইটস");

ফাইল হেল্পার কনফিগার ফাইল
ফাইল হেল্পার কনফিগার ফাইল() ফাংশনটি টেক্সট ফাইল কনফিগার করতে ব্যবহার করা যেতে পারে।

এটির নিম্নলিখিত প্রোটোটাইপ রয়েছে:

void ConfigureFile (const std::string &outputFileNameWithoutExtension,
enum FileAggregator::FileType fileType = FileAggregator::SPACE_SEPARATED);

এটিতে নিম্নলিখিত যুক্তি রয়েছে:

┌───────────────────────────────┬───────────────── ─────────────────┐
│যুক্তি │ বর্ণনা │
├───────────────────────────────┼───────────────── ─────────────────┤
│outputFileNameWithoutExtension │ লেখার জন্য আউটপুট ফাইলের নাম │
│ │ কোনো এক্সটেনশন ছাড়াই। │
├───────────────────────────────┼───────────────── ─────────────────┤
│fileType │ ফাইলের প্রকার লিখতে হবে। │
│ │ ফাইলের ডিফল্ট প্রকার হল স্থান │
│ │ পৃথক করা হয়েছে। │
└───────────────────────────────┴───────────────── ─────────────────┘

ফাইল হেল্পার কনফিগার ফাইল() ফাংশন এর জন্য টেক্সট ফাইল সম্পর্কিত পরামিতি কনফিগার করে
ফাইল হেল্পার যাতে এটি outputFileNameWithoutExtension plus নামে একটি ফাইল তৈরি করবে
ওয়াইল্ডকার্ড ম্যাচ প্লাস ".txt" থেকে সম্ভাব্য অতিরিক্ত তথ্য মুদ্রিত মান সহ
ফাইল টাইপ দ্বারা নির্দিষ্ট করা হয়েছে। ডিফল্ট ফাইলের ধরন স্থান-বিচ্ছিন্ন।

এই ফাংশনটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ তে দেখা যাবে সপ্তম.সিসি উপরে বর্ণিত কোড
যেখানে এটি নিম্নরূপ ব্যবহার করা হয়েছিল:

fileHelper.ConfigureFile ("সপ্তম-প্যাকেট-বাইট-গণনা",
ফাইল অ্যাগ্রিগেটর::ফরম্যাটেড);

ফাইল হেল্পার WriteProbe
ফাইল হেল্পার WriteProbe() ফাংশন প্রোব দ্বারা উত্পন্ন মান লিখতে ব্যবহার করা যেতে পারে
টেক্সট ফাইল।

এটির নিম্নলিখিত প্রোটোটাইপ রয়েছে:

void WriteProbe (const std::string &typeId,
const std::string &path,
const std::string &probeTraceSource);

এটিতে নিম্নলিখিত যুক্তি রয়েছে:

┌─────────────────┬─────────────────────────────── ───┐
│যুক্তি │ বর্ণনা │
├─────────────────┼─────────────────────────────── ───┤
│typeId │ প্রোবের জন্য টাইপ ID │ হতে হবে
│ │ তৈরি করা হয়েছে। │
├─────────────────┼─────────────────────────────── ───┤
│পাথ │ ট্রেস অ্যাক্সেস করার জন্য পাথ কনফিগার করুন │
│ │ উৎস। │
├─────────────────┼─────────────────────────────── ───┤
│probeTraceSource │ প্রোবের ট্রেস সোর্স │ এ
│ │ অ্যাক্সেস। │
└─────────────────┴─────────────────────────────── ───┘

ফাইল হেল্পার WriteProbe() ফাংশন হুকিং দ্বারা উত্পন্ন আউটপুট টেক্সট ফাইল তৈরি করে
সাহায্যকারীর দ্বারা তৈরি একটি প্রোবের সাহায্যে ns-3 ট্রেস সোর্স, এবং তারপর থেকে মানগুলি লেখা
probeTraceSource. আউটপুট ফাইলের নামের পাঠ্য সদস্য ভেরিয়েবলে সংরক্ষিত থাকবে
m_outputFileNameWithoutExtension প্লাস ".txt", এবং প্রতিটিতে 'newValue' থাকবে
টাইমস্ট্যাম্প

যদি কনফিগার পাথ সিস্টেমে একাধিক মিল থাকে কারণ একটি ওয়াইল্ডকার্ড আছে, তাহলে
প্রতিটি ম্যাচের জন্য একটি আউটপুট ফাইল তৈরি করা হবে। আউটপুট ফাইলের নাম ধারণ করবে
m_outputFileNameWithoutExtension-এ পাঠ্য এবং প্রতিটির জন্য মিলে যাওয়া অক্ষর
কনফিগার পাথে ওয়াইল্ডকার্ড, ড্যাশ দ্বারা পৃথক করা, প্লাস ".txt"। উদাহরণস্বরূপ, যদি মান
m_outputFileNameWithoutExtension-এ স্ট্রিং হল "প্যাকেট-বাইট-কাউন্ট", এবং দুটি আছে
পথের মধ্যে ওয়াইল্ডকার্ড, তারপর আউটপুট ফাইলের নাম যেমন "packet-byte-count-0-0.txt" বা
তৈরি করা ফাইলগুলির নাম হিসাবে "packet-byte-count-12-9.txt" সম্ভব হবে।

এই ফাংশনটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ তে দেখা যাবে সপ্তম.সিসি উপরে বর্ণিত কোড
যেখানে এটি নিম্নরূপ ব্যবহার করা হয়েছিল:

fileHelper.WriteProbe ("ns3::Ipv4PacketProbe",
"/NodeList/*/$ns3::Ipv4L3Protocol/Tx",
"আউটপুটবাইটস");

অন্যান্য উদাহরণ
ফাইল সাহায্যকারী উদাহরণ
তুলনায় একটি সামান্য সহজ উদাহরণ সপ্তম.সিসি উদাহরণ পাওয়া যাবে
src/stats/examples/file-helper-example.cc. এই উদাহরণটি শুধুমাত্র FileHelper ব্যবহার করে।

নিম্নলিখিত টেক্সট ফাইল 2 কলাম ফরম্যাট মান নাম দিয়ে file-helper-example.txt
উদাহরণ ব্যবহার করে তৈরি করা হয়েছিল। এই ফাইলটির শুধুমাত্র প্রথম 10টি লাইন এখানে দেখানো হয়েছে
সংক্ষিপ্ততা

সময় (সেকেন্ড) = 0.203 গণনা = 1
সময় (সেকেন্ড) = 0.702 গণনা = 2
সময় (সেকেন্ড) = 1.404 গণনা = 3
সময় (সেকেন্ড) = 2.368 গণনা = 4
সময় (সেকেন্ড) = 3.364 গণনা = 5
সময় (সেকেন্ড) = 3.579 গণনা = 6
সময় (সেকেন্ড) = 5.873 গণনা = 7
সময় (সেকেন্ড) = 6.410 গণনা = 8
সময় (সেকেন্ড) = 6.472 গণনা = 9
...

এই উদাহরণে, একটি ইমিটার অবজেক্ট আছে যা a অনুযায়ী তার কাউন্টার বৃদ্ধি করে
পয়সন প্রক্রিয়া এবং তারপর একটি ট্রেস উৎস হিসাবে কাউন্টারের মান নির্গত করে।

Ptr emitter = CreateObject ();
নাম::অ্যাড ("/নাম/ইমিটার", ইমিটার);

উল্লেখ্য যে নিচের ব্যবহৃত পাথে কোনো ওয়াইল্ডকার্ড না থাকায় শুধুমাত্র 1টি টেক্সট ফাইল ছিল
তৈরি এই একক টেক্সট ফাইলটিকে সহজভাবে "file-helper-example.txt" নাম দেওয়া হয়েছে, কোনো অতিরিক্ত ছাড়াই
আপনার মতো প্রত্যয়গুলি দেখতে পাবে যে পথে ওয়াইল্ডকার্ড আছে কিনা।

// ফাইল হেল্পার তৈরি করুন।
ফাইলহেল্পার ফাইলহেল্পার;

// লেখার জন্য ফাইল কনফিগার করুন।
fileHelper.ConfigureFile ("ফাইল-হেল্পার-উদাহরণ",
ফাইল অ্যাগ্রিগেটর::ফরম্যাটেড);

// এই ফর্ম্যাট করা আউটপুট ফাইলের জন্য লেবেল সেট করুন।
fileHelper.Set2dFormat ("সময় (সেকেন্ড) = %.3e\tCount = %.0f");

// প্রোবের দ্বারা উত্পন্ন মানগুলি লিখুন। যে পথে আমরা
// প্রদান ট্রেসের উৎসকে দ্ব্যর্থহীন করতে সাহায্য করে।
fileHelper.WriteProbe ("ns3::Uinteger32Probe",
"/নাম/ইমিটার/কাউন্টার",
"আউটপুট");

ব্যাপ্তি এবং সীমাবদ্ধতা
বর্তমানে, শুধুমাত্র এই প্রোবগুলি প্রয়োগ করা হয়েছে এবং GnuplotHelper-এর সাথে সংযুক্ত করা হয়েছে
ফাইল হেল্পারের কাছে:

বুলিয়ানপ্রোব

· ডাবলপ্রোব

· Uinteger8Probe

· Uinteger16Probe

· Uinteger32Probe

· টাইমপ্রোব

· প্যাকেটপ্রোব

· ApplicationPacketProbe

· Ipv4PacketProbe

তাই এই প্রোবগুলিই শুধুমাত্র TypeIds ব্যবহার করার জন্য উপলব্ধ প্লটপ্রোব() এবং
WriteProbe().

পরবর্তী কয়েকটি বিভাগে, আমরা প্রতিটি মৌলিক বস্তুর ধরনকে কভার করব (প্রোব, কালেক্টর,
এবং এগ্রিগেটর) আরো বিস্তারিতভাবে দেখান এবং দেখান কিভাবে তারা একসাথে সংযুক্ত হতে পারে
নিম্ন-স্তরের API।

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

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

সাধারণত, একটি প্রোব একটি এর সাথে সংযুক্ত থাকে ns-3 উৎস ট্রেস. এই পদ্ধতিতে, যখনই
ট্রেস সোর্স একটি নতুন মান রপ্তানি করে, প্রোব মানটি গ্রাস করে (এবং নিচের দিকে রপ্তানি করে
অন্য বস্তুর নিজস্ব ট্রেস উৎসের মাধ্যমে)।

অনুসন্ধানটিকে ট্রেস উত্সের একটি ফিল্টার হিসাবে বিবেচনা করা যেতে পারে। এর প্রধান কারণ
সম্ভবত সরাসরি একটি ট্রেস উত্সের পরিবর্তে একটি প্রোবের সাথে সংযুক্ত করা নিম্নরূপ:

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

· প্রোবগুলি আরও জটিল থেকে মান বের করার জন্য ডেটার উপর অপারেশন করতে পারে
কাঠামো; উদাহরণস্বরূপ, প্রাপ্ত ns3::প্যাকেট থেকে প্যাকেট আকারের মান আউটপুট করা।

প্রোবগুলি ns3::Config নামস্থানে একটি নাম নিবন্ধন করে (ব্যবহার করে নাম::যোগ করুন ()) যাতে অন্য
বস্তু তাদের উল্লেখ করতে পারে.

প্রোবগুলি একটি স্থির পদ্ধতি প্রদান করে যা একজনকে নাম অনুসারে একটি প্রোব পরিচালনা করতে দেয়, যেমন
ns2measure এ কি করা হয় [Cic06]

Stat::put ("my_metric", ID, নমুনা);

উপরের ns3measure কোডের ns-2 সমতুল্য, যেমন

DoubleProbe::SetValueByPath ("/path/to/probe", নমুনা);

সৃষ্টি
মনে রাখবেন যে প্রোব বেস ক্লাস অবজেক্ট তৈরি করা যাবে না কারণ এটি একটি বিমূর্ত বেস
ক্লাস, অর্থাৎ এটিতে বিশুদ্ধ ভার্চুয়াল ফাংশন রয়েছে যা বাস্তবায়িত হয়নি। একটি বস্তু
DoubleProbe টাইপ করুন, যা প্রোব ক্লাসের একটি সাবক্লাস, দেখানোর জন্য এখানে তৈরি করা হবে
কি করা প্রয়োজন.

একজন স্মার্ট পয়েন্টার ক্লাস ব্যবহার করে ডাইনামিক মেমরিতে একটি ডাবলপ্রোব ঘোষণা করে (Ptr ) প্রতি
স্মার্ট পয়েন্টার দিয়ে ডাইনামিক মেমরিতে একটি DoubleProbe তৈরি করুন, একজনকে শুধু কল করতে হবে
ns-3 পদ্ধতি CreateObject():

Ptr myprobe = CreateObject ();

উপরের ঘোষণাটি তার বৈশিষ্ট্যগুলির জন্য ডিফল্ট মান ব্যবহার করে DoubleProbes তৈরি করে।
DoubleProbe ক্লাসে চারটি বৈশিষ্ট্য রয়েছে; বেস ক্লাস অবজেক্টে দুটি
DataCollectionObject, এবং দুটি প্রোব বেস ক্লাসে:

· "নাম" (ডেটা কালেকশন অবজেক্ট), একটি স্ট্রিং ভ্যালু

· "সক্ষম" (DataCollectionObject), একটি বুলিয়ান ভ্যালু

· "স্টার্ট" (প্রোব), একটি টাইম ভ্যালু

· "স্টপ" (প্রোব), একটি টাইম ভ্যালু

নিম্নলিখিত পদ্ধতি ব্যবহার করে কেউ অবজেক্ট তৈরিতে এই জাতীয় বৈশিষ্ট্যগুলি সেট করতে পারে:

Ptr myprobe = CreateObjectWithAttributes (
"নাম", স্ট্রিং ভ্যালু ("মাইপ্রোব"),
"সক্ষম", বুলিয়ান ভ্যালু (মিথ্যা),
"স্টার্ট", ​​টাইম ভ্যালু (সেকেন্ড (100.0)),
"স্টপ", টাইম ভ্যালু (সেকেন্ড (1000.0)));

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

আমদানি হচ্ছে এবং রপ্তানি উপাত্ত
ns-3 ট্রেস উত্স দৃঢ়ভাবে টাইপ করা হয়, তাই একটি ট্রেসে প্রোবকে হুক করার প্রক্রিয়া
উৎস এবং ডেটা রপ্তানির জন্য এর উপশ্রেণীর অন্তর্গত। উদাহরণস্বরূপ, ডিফল্ট
বিতরণ ns-3 একটি শ্রেণী DoubleProbe প্রদান করে যা একটি ট্রেস হুক করার জন্য ডিজাইন করা হয়েছে
একটি ডবল মান রপ্তানি উৎস. আমরা পরবর্তীতে DoubleProbe-এর অপারেশন সম্পর্কে বিস্তারিত জানাব, এবং
তারপর আলোচনা করুন কিভাবে অন্যান্য প্রোব ক্লাস ব্যবহারকারী দ্বারা সংজ্ঞায়িত করা যেতে পারে।

ডাবলপ্রোব সংক্ষিপ্ত বিবরণ
DoubleProbe একটি দ্বিগুণ-মূল্যের সাথে সংযোগ করে ns-3 ট্রেস সোর্স, এবং নিজেই রপ্তানি করে
বিভিন্ন দ্বি-মূল্যবান ns-3 উৎস ট্রেস.

নিম্নলিখিত কোড, থেকে আঁকা src/stats/examples/double-probe-example.cc, মৌলিক দেখায়
ডাবলপ্রোবকে একটি সিমুলেশনে প্লাম্বিং করার অপারেশন, যেখানে এটি একটি কাউন্টার অনুসন্ধান করছে
একটি ইমিটার বস্তু (শ্রেণি ইমিটার) দ্বারা রপ্তানি করা হয়।

Ptr emitter = CreateObject ();
নাম::অ্যাড ("/নাম/ইমিটার", ইমিটার);
...

Ptr probe1 = CreateObject ();

// প্রোবটিকে ইমিটারের কাউন্টারের সাথে সংযুক্ত করুন
bool connected = probe1->ConnectByObject ("কাউন্টার", emitter);

নিম্নলিখিত কোড একই বিকিরণকারী বস্তু দ্বারা রপ্তানি করা একই কাউন্টার অনুসন্ধান করছে। এই
DoubleProbe, যাইহোক, কনফিগারেশন নেমস্পেসে একটি পাথ ব্যবহার করছে
সংযোগ মনে রাখবেন যে নির্গমনকারী কনফিগারেশন নামস্থানে নিজেকে নিবন্ধিত করেছে
এটা তৈরি করা হয়েছিল; অন্যথায়, ConnectByPath কাজ করবে না।

Ptr probe2 = CreateObject ();

// নোট করুন, এখানে কোনো রিটার্ন মান চেক করা হয় না
probe2->ConnectByPath ("/Names/Emitter/Counter");

নিচে দেখানো পরবর্তী DoubleProbe-এ এর পাথ ব্যবহার করে এর মান সেট করা হবে
কনফিগারেশন নামস্থান। উল্লেখ্য, এবার DoubleProbe তে নিবন্ধিত হয়েছে
কনফিগারেশন নেমস্পেস তৈরি হওয়ার পর।

Ptr probe3 = CreateObject ();
probe3->SetName ("Statically AccessedProbe");

// আমাদের এটি কনফিগার ডাটাবেসে যোগ করতে হবে
নাম::অ্যাড ("/নাম/প্রোব", প্রোব3->গেটনাম (), প্রোব3);

এমিটারের Count() ফাংশনটি এখন এই DoubleProbe-এর জন্য মান সেট করতে সক্ষম
অনুসরণ:

অকার্যকর
বিকিরণকারী::গণনা (অকার্যকর)
{
...
m_counter += 1.0;
DoubleProbe::SetValueByPath ("/Names/StaticallyAccessedProbe", m_counter);
...
}

উপরের উদাহরণটি দেখায় যে কীভাবে প্রোবকে কল করা কোডটির একটি সুস্পষ্ট থাকতে হবে না
প্রোবের রেফারেন্স, কিন্তু কনফিগার নামস্থানের মাধ্যমে মান নির্ধারণের নির্দেশ দিতে পারে।
এই কার্যকারিতা অনুরূপ স্ট্যাটাস::পুট পদ্ধতি ns2measure কাগজ দ্বারা প্রবর্তিত
[Cic06], এবং ব্যবহারকারীদের সাময়িকভাবে Probe স্টেটমেন্ট সন্নিবেশ করার অনুমতি দেয় printf, বিবৃতি
বিদ্যমান মধ্যে ns-3 মডেল উল্লেখ্য যে এটিতে DoubleProbe ব্যবহার করতে সক্ষম হওয়ার জন্য
এই মত উদাহরণ, 2 জিনিস প্রয়োজনীয় ছিল:

1. পরিসংখ্যান মডিউল হেডার ফাইলটি উদাহরণ .cc ফাইলে অন্তর্ভুক্ত ছিল

2. উদাহরণটি তার wscript ফাইলের পরিসংখ্যান মডিউলের উপর নির্ভরশীল করা হয়েছিল।

অন্যান্য স্থানে অন্যান্য প্রোব যোগ করার জন্য সাদৃশ্যপূর্ণ জিনিসগুলি করা প্রয়োজন ns-3
কোড বেস।

DoubleProbe এর মানগুলি DoubleProbe::SetValue(), ফাংশন ব্যবহার করেও সেট করা যেতে পারে।
যখন DoubleProbe-এর মান ফাংশন ব্যবহার করে অর্জিত হতে পারে
DoubleProbe::GetValue()।

DoubleProbe তার "আউটপুট" ট্রেস উৎসে দ্বিগুণ মান রপ্তানি করে; একটি নিম্নধারার বস্তু
নিম্নলিখিত হিসাবে এটি একটি ট্রেস সিঙ্ক (NotifyViaProbe) হুক করতে পারেন:

connected = probe1->TraceConnect ("আউটপুট", probe1->GetName (), MakeCallback (&NotifyViaProbe));

অন্যান্য প্রোব
DoubleProbe ছাড়াও, নিম্নলিখিত প্রোবগুলিও উপলব্ধ:

Uinteger8Probe একটির সাথে সংযোগ করে ns-3 ট্রেস উৎস একটি uint8_t রপ্তানি করছে।

Uinteger16Probe একটির সাথে সংযোগ করে ns-3 ট্রেস উৎস একটি uint16_t রপ্তানি করছে।

Uinteger32Probe একটির সাথে সংযোগ করে ns-3 ট্রেস উৎস একটি uint32_t রপ্তানি করছে।

প্যাকেটপ্রোব একটির সাথে সংযোগ করে ns-3 ট্রেস সোর্স একটি প্যাকেট রপ্তানি করছে।

· ApplicationPacketProbe একটি এর সাথে সংযোগ করে ns-3 ট্রেস সোর্স একটি প্যাকেট এবং একটি সকেট রপ্তানি করছে
ঠিকানা।

· Ipv4PacketProbe একটির সাথে সংযোগ করে ns-3 ট্রেস সোর্স একটি প্যাকেট, একটি IPv4 অবজেক্ট এবং রপ্তানি করে
একটি ইন্টারফেস।

তৈরি করা হচ্ছে নতুন প্রোব ধরনের
একটি নতুন প্রোব প্রকার তৈরি করতে, আপনাকে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে হবে:

নিশ্চিত করুন যে আপনার নতুন প্রোব ক্লাসটি প্রোব বেস ক্লাস থেকে নেওয়া হয়েছে।

· আপনার নতুন প্রোব ক্লাস থেকে পাওয়া বিশুদ্ধ ভার্চুয়াল ফাংশনগুলি নিশ্চিত করুন
প্রোব বেস ক্লাস বাস্তবায়িত হয়।

একটি বিদ্যমান প্রোব ক্লাস খুঁজুন যা একটি ট্রেস উৎস ব্যবহার করে যা টাইপের সবচেয়ে কাছাকাছি
আপনার প্রোব যে ধরনের ট্রেস সোর্স ব্যবহার করবে।

বিদ্যমান প্রোব ক্লাসের হেডার ফাইল (.h) এবং বাস্তবায়ন ফাইল (.cc) দুটিতে অনুলিপি করুন
আপনার নতুন প্রোবের সাথে মিলে যাওয়া নামের সাথে নতুন ফাইল।

· অনুলিপি করা ফাইলের প্রকার, আর্গুমেন্ট এবং ভেরিয়েবলগুলিকে উপযুক্ত দিয়ে প্রতিস্থাপন করুন
আপনার প্রোবের জন্য টাইপ করুন।

· কোড কম্পাইল করতে এবং এটিকে আপনার মত আচরণ করতে প্রয়োজনীয় পরিবর্তন করুন
মত।

উদাহরণ
দুটি উদাহরণ এখানে বিস্তারিত আলোচনা করা হবে:

· ডাবল প্রোবের উদাহরণ

· IPv4 প্যাকেট প্লট উদাহরণ

ডবল প্রোব উদাহরণ
ডবল প্রোবের উদাহরণ আগে আলোচনা করা হয়েছে। উদাহরণ প্রোগ্রাম পাওয়া যাবে
in src/stats/examples/double-probe-example.cc. এই প্রোগ্রামে যা ঘটে তা সংক্ষিপ্ত করতে,
একটি বিকিরণকারী রয়েছে যা একটি কাউন্টার রপ্তানি করে যা একটি পয়সন প্রক্রিয়া অনুসারে বৃদ্ধি পায়।
বিশেষ করে, ডেটা নির্গত করার দুটি উপায় দেখানো হয়েছে:

1. একটি প্রোবের সাথে সংযুক্ত একটি ট্রেসড ভেরিয়েবলের মাধ্যমে:

ট্রেসড ভ্যালু m_কাউন্টার; // সাধারণত এই পূর্ণসংখ্যা টাইপ হবে

2. একটি কাউন্টারের মাধ্যমে যার মান একটি দ্বিতীয় প্রোবে পোস্ট করা হয়েছে, এর নাম দ্বারা উল্লেখ করা হয়েছে
কনফিগারেশন সিস্টেম:

অকার্যকর
বিকিরণকারী::গণনা (অকার্যকর)
{
NS_LOG_FUNCTION (এটি);
NS_LOG_DEBUG ("এতে গণনা করা হচ্ছে " << সিমুলেটর::এখন ().গেট সেকেন্ড ());
m_counter += 1.0;
DoubleProbe::SetValueByPath ("/Names/StaticallyAccessedProbe", m_counter);
সিমুলেটর::শিডিউল (সেকেন্ড (m_var->GetValue ()), &Emitter::count, this);
}

আসুন আরও মনোযোগ সহকারে প্রোবটি দেখি। প্রোবগুলি তাদের মান একাধিকতে গ্রহণ করতে পারে
উপায়:

1. প্রোবের মাধ্যমে সরাসরি ট্রেস সোর্স অ্যাক্সেস করা এবং এটির সাথে একটি ট্রেস সিঙ্ক সংযোগ করা

2. প্রোবের দ্বারা কনফিগার নেমস্পেসের মাধ্যমে ট্রেস সোর্স অ্যাক্সেস করা এবং a সংযোগ করা
এটা ট্রেস ডুবা

3. কলিং কোড দ্বারা স্পষ্টভাবে প্রোবের কলিং সেট ভ্যালু() পদ্ধতি

4. কলিং কোড দ্বারা স্পষ্টভাবে কল করা SetValueByPath
("/পাথ/থ্রু/কনফিগ/নেমস্পেস", ...)

প্রথম দুটি কৌশল সবচেয়ে সাধারণ বলে আশা করা হচ্ছে। এছাড়াও উদাহরণে,
একটি সাধারণ কলব্যাক ফাংশনের হুকিং দেখানো হয়, যেমনটি সাধারণত করা হয় ns-3. এই
কলব্যাক ফাংশন একটি প্রোব বস্তুর সাথে যুক্ত নয়। আমরা এই ক্ষেত্রে 0) নীচে কল করব।

// এটি একটি ফাংশন যা ট্রেস উত্সে একটি কাঁচা ফাংশন হুক করা পরীক্ষা করার জন্য
অকার্যকর
NotifyViaTraceSource (std::string context, double oldVal, double newVal)
{
NS_LOG_DEBUG ("প্রসঙ্গ: " << প্রসঙ্গ << " পুরানো " << পুরানো ভ্যাল << " নতুন " << নতুন ভ্যাল);
}

প্রথমত, ইমিটার সেটআপ করা দরকার:

Ptr emitter = CreateObject ();
নাম::অ্যাড ("/নাম/ইমিটার", ইমিটার);

// Emitter অবজেক্ট একটি ns-3 নোডের সাথে যুক্ত নয়, তাই
// এটি স্বয়ংক্রিয়ভাবে শুরু হবে না, তাই আমাদের নিজেরাই এটি করতে হবে
সিমুলেটর::শিডিউল (সেকেন্ড (0.0), &ইমিটার::স্টার্ট, ইমিটার);

নিচে দেখানো উদাহরণে বিভিন্ন DoubleProbes ইমিটারের সাথে ইন্টারঅ্যাক্ট করে।

কেস 0):

// নীচের একটি প্রোব ছাড়া সাধারণ কার্যকারিতা দেখায়
// (একটি ট্রেস উৎসে একটি সিঙ্ক ফাংশন সংযোগ করুন)
//
connected = emitter->TraceConnect ("কাউন্টার", "নমুনা প্রসঙ্গ", MakeCallback (&NotifyViaTraceSource));
NS_ASSERT_MSG (সংযুক্ত, "ট্রেস উত্স সংযুক্ত নয়");

মামলা 1):

//
// Probe1 সরাসরি ইমিটার ট্রেস সোর্স অবজেক্টে হুক করা হবে
//

// probe1 এমিটার ট্রেস উৎসের সাথে সংযুক্ত করা হবে
Ptr probe1 = CreateObject ();
// প্রোবের নাম ট্রেসিং এর প্রসঙ্গ হিসাবে কাজ করতে পারে
probe1->SetName ("ObjectProbe");

// প্রোবটিকে ইমিটারের কাউন্টারের সাথে সংযুক্ত করুন
connected = probe1->ConnectByObject ("কাউন্টার", emitter);
NS_ASSERT_MSG (সংযুক্ত, "ট্রেস সোর্স প্রোবের সাথে সংযুক্ত নয়");

মামলা 2):

//
// Probe2 দ্বারা ইমিটার ট্রেস সোর্স অবজেক্টের সাথে হুক করা হবে
// কনফিগার ডাটাবেসে পাথ নামের দ্বারা এটি অ্যাক্সেস করা
//

// আরেকটি অনুরূপ প্রোব তৈরি করুন; এটি একটি কনফিগার পাথের মাধ্যমে হুক আপ হবে
Ptr probe2 = CreateObject ();
probe2->SetName ("PathProbe");

// নোট করুন, এখানে কোনো রিটার্ন মান চেক করা হয় না
probe2->ConnectByPath ("/Names/Emitter/Counter");

কেস 4) (কেস 3 এই উদাহরণে দেখানো হয়নি):

//
// Probe3 এমিটারের মাধ্যমে সরাসরি কল করা হবে
// স্ট্যাটিক পদ্ধতি SetValueByPath()।
//
Ptr probe3 = CreateObject ();
probe3->SetName ("Statically AccessedProbe");
// আমাদের এটি কনফিগার ডাটাবেসে যোগ করতে হবে
নাম::অ্যাড ("/নাম/প্রোব", প্রোব3->গেটনাম (), প্রোব3);

এবং অবশেষে, উদাহরণটি দেখায় কিভাবে প্রোবগুলিকে আউটপুট তৈরি করতে হুক করা যেতে পারে:

// প্রোবের নিজেই আউটপুট তৈরি করা উচিত। প্রসঙ্গ যে আমরা প্রদান
// এই প্রোবের জন্য (এই ক্ষেত্রে, প্রোবের নাম) দ্ব্যর্থতা নিরসন করতে সাহায্য করবে
// ট্রেসের উৎস
connected = probe3->TraceConnect ("আউটপুট",
"/Names/Probes/Statically AccessedProbe/Output",
মেককলব্যাক (&NotifyViaProbe));
NS_ASSERT_MSG (সংযুক্ত, "ট্রেস সোর্স নয় .. probe3 আউটপুটের সাথে সংযুক্ত");

নিম্নলিখিত কলব্যাকটি ব্যাখ্যামূলক উদ্দেশ্যে এই উদাহরণে প্রোবের সাথে সংযুক্ত করা হয়েছে;
সাধারণত, প্রোব একটি সংগ্রাহক বস্তুর সাথে সংযুক্ত করা হবে।

// এটি একটি ফাংশন যা প্রোবের আউটপুটে হুক করে পরীক্ষা করার জন্য
অকার্যকর
NotifyViaProbe (std::স্ট্রিং প্রসঙ্গ, ডবল OldVal, ডবল newVal)
{
NS_LOG_DEBUG ("প্রসঙ্গ: " << প্রসঙ্গ << " পুরানো " << পুরানো ভ্যাল << " নতুন " << নতুন ভ্যাল);
}

IPv4 মোড়ক চক্রান্ত উদাহরণ
IPv4 প্যাকেট প্লট উদাহরণ থেকে পঞ্চম.cc উদাহরণের উপর ভিত্তি করে ns-3 টিউটোরিয়াল। এটা
পাওয়া যাবে src/stats/examples/ipv4-packet-plot-example.cc.

নোড 0 নোড 1
+----------------+ +----------------+
| ns-3 TCP | | ns-3 TCP |
+----------------+ +----------------+
| 10.1.1.1 | | 10.1.1.2 |
+----------------+ +----------------+
| পয়েন্ট টু পয়েন্ট | | পয়েন্ট টু পয়েন্ট |
+----------------+ +----------------+
| |
+------------

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

এই উদাহরণের অন্যান্য দিক রয়েছে যা পরে ডকুমেন্টেশনে ব্যাখ্যা করা হবে।
রপ্তানি করা হয় যে দুই ধরনের ডেটা প্যাকেট নিজেই (আউটপুট) এবং একটি গণনা
প্যাকেটে বাইটের সংখ্যা (আউটপুটবাইট).

টাইপআইডি
Ipv4PacketProbe::GetTypeId ()
{
স্ট্যাটিক TypeId tid = TypeId ("ns3::Ipv4PacketProbe")
.SetParent ()
.AddConstructor ()
.AddTraceSource ( "আউটপুট",
"প্যাকেট এবং এর IPv4 অবজেক্ট এবং ইন্টারফেস যা এই প্রোবের আউটপুট হিসাবে কাজ করে",
MakeTraceSourceAccessor (&Ipv4PacketProbe::m_output))
.TraceSource যোগ করুন ( "আউটপুটবাইটস",
"প্যাকেটে বাইটের সংখ্যা",
MakeTraceSourceAccessor (&Ipv4PacketProbe::m_outputBytes))
;
রিটার্ন tid;
}

যখন প্রোবের ট্রেস সিঙ্ক একটি প্যাকেট পায়, যদি প্রোব সক্রিয় থাকে, তাহলে এটি আউটপুট করবে
তার উপর প্যাকেট আউটপুট ট্রেস সোর্স, কিন্তু এটি বাইটের সংখ্যাও আউটপুট করবে
আউটপুটবাইট উৎস ট্রেস.

অকার্যকর
Ipv4PacketProbe::TraceSink (Ptr প্যাকেট, Ptr ipv4, uint4_t ইন্টারফেস)
{
NS_LOG_FUNCTION (এই << প্যাকেট << ipv4 << ইন্টারফেস);
যদি (সক্ষম ())
{
m_packet = প্যাকেট;
m_ipv4 = ipv4;
m_interface = ইন্টারফেস;
m_output (প্যাকেট, ipv4, ইন্টারফেস);

uint32_t packetSizeNew = প্যাকেট->GetSize ();
m_outputBytes (m_packetSizeOld, packetSizeNew);
m_packetSizeOld = packetSizeNew;
}
}

তথ্যসূত্র
[Cic06]
Claudio Cicconetti, Enzo Mingozzi, Giovanni Stea, "এর জন্য একটি সমন্বিত কাঠামো
কার্যকরী তথ্য সংগ্রহ এবং পরিসংখ্যান বিশ্লেষণ সক্ষম করা ns2, কর্মশালা
ns-2 (WNS2), পিসা, ইতালি, অক্টোবর 2006।

সংগ্রাহক
এই বিভাগটি কালেক্টর দ্বারা প্রদত্ত কার্যকারিতাগুলির বিশদ বিবরণের জন্য একটি স্থানধারক৷
একটি থেকে ক্লাস ns-3 সিমুলেশন, এবং একটি প্রোগ্রামে তাদের কোড করার উদাহরণ দেয়।

বিঃদ্রঃ: ns-3.18 অনুযায়ী, সংগ্রাহক এখনও বিকাশের অধীনে রয়েছে এবং এখনও অংশ হিসাবে সরবরাহ করা হয়নি
কাঠামোর।

সংযোগকারীগণ
এই বিভাগে অ্যাগ্রিগেটর শ্রেণী দ্বারা একটিকে প্রদত্ত কার্যকারিতার বিবরণ রয়েছে ns-3
সিমুলেশন এই বিভাগটির সাথে সিমুলেশন তৈরি করতে আগ্রহী ব্যবহারকারীদের জন্য বোঝানো হয়েছে৷
ns-3 টুলস এবং ডেটা কালেকশন ফ্রেমওয়ার্ক ব্যবহার করে, যার মধ্যে অ্যাগ্রিগেটর ক্লাস হল a
অংশ, তাদের সিমুলেশনের ফলাফলের সাথে ডেটা আউটপুট তৈরি করতে।

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

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

Aggregators সম্পর্কে নিম্নলিখিত নোট করুন:

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

· সমষ্টিকারীরা কলব্যাকের মাধ্যমে সংগ্রাহকদের কাছ থেকে ডেটা গ্রহণ করে। যখন একজন কালেক্টর যুক্ত থাকে
একটি এগ্রিগেটরকে, Aggregator এর ট্রেস স্থাপন করতে TraceConnect-এ একটি কল করা হয়
কলব্যাক হিসাবে সিঙ্ক পদ্ধতি।

আজ পর্যন্ত, দুটি সমষ্টিকারী বাস্তবায়িত হয়েছে:

· GnuplotAggregator

· ফাইল অ্যাগ্রিগেটর

GnuplotAggregator
GnuplotAggregator gnuplots তৈরি করতে ব্যবহৃত আউটপুট ফাইল তৈরি করে।

GnuplotAggregator সিমুলেশনের শেষে 3টি ভিন্ন ফাইল তৈরি করবে:

একটি স্পেস বিভক্ত gnuplot ডেটা ফাইল

একটি gnuplot কন্ট্রোল ফাইল

gnuplot তৈরি করার জন্য একটি শেল স্ক্রিপ্ট

সৃষ্টি
কী করা দরকার তা দেখানোর জন্য এখানে GnuplotAggregator ধরনের একটি অবজেক্ট তৈরি করা হবে।

একজন স্মার্ট পয়েন্টার ক্লাস ব্যবহার করে গতিশীল মেমরিতে একটি GnuplotAggregator ঘোষণা করে
(Ptr ) স্মার্ট পয়েন্টার সহ ডায়নামিক মেমরিতে একটি GnuplotAggregator তৈরি করতে, একটি মাত্র
কল করতে হবে ns-3 পদ্ধতি CreateObject(). থেকে নিম্নলিখিত কোড
src/stats/examples/gnuplot-aggregator-example.cc এটি কিভাবে করতে হয় তা দেখায়:

string fileNameWithoutExtension = "gnuplot-এগ্রিগেটর";

// একটি এগ্রিগেটর তৈরি করুন।
Ptr aggregator =
অবজেক্ট তৈরি করুন (fileNameWithoutExtension);

কনস্ট্রাক্টরের জন্য প্রথম আর্গুমেন্ট, fileNameWithoutExtension, এর নাম
gnuplot সম্পর্কিত ফাইল কোন এক্সটেনশন ছাড়া লিখতে. এই GnuplotAggregator একটি তৈরি করবে
"gnuplot-aggregator.dat" নামে স্পেস বিভক্ত gnuplot ডেটা ফাইল, একটি gnuplot কন্ট্রোল ফাইল
"gnuplot-aggregator.plt" নামে, এবং + নামের gnuplot তৈরি করার জন্য একটি শেল স্ক্রিপ্ট
"gnuplot-aggregator.sh"।

তৈরি করা gnuplot এর কী 4টি ভিন্ন স্থানে থাকতে পারে:

· চাবি নেই

· প্লটের ভিতরে কী (ডিফল্ট)

· প্লটের উপরে কী

· প্লটের নীচে কী

নিম্নলিখিত gnuplot কী অবস্থান enum মানগুলি কীটির অবস্থান নির্দিষ্ট করতে অনুমোদিত:

enum কী অবস্থান {
চাবি নেই,
KEY_INSIDE,
KEY_ABOVE,
KEY_BELOW
};

যদি এটি ভিতরের ডিফল্ট অবস্থানের চেয়ে নীচের চাবিটি থাকতে চায় তবে
আপনি নিম্নলিখিত করতে পারেন.

aggregator->SetKeyLocation(GnuplotAggregator::KEY_BELOW);

উদাহরণ
একটি উদাহরণ এখানে বিস্তারিত আলোচনা করা হবে:

গ্নুপ্লট অ্যাগ্রিগেটর উদাহরণ

জ্ঞানপ্লট সমষ্টিবিদ উদাহরণ
GnuplotAggregator অনুশীলন করে এমন একটি উদাহরণ পাওয়া যাবে
src/stats/examples/gnuplot-aggregator-example.cc.

নিম্নলিখিত 2-D gnuplot উদাহরণ ব্যবহার করে তৈরি করা হয়েছিল।
[ছবি] 2-ডি গ্নুপ্লট gnuplot-aggregator-example.cc দ্বারা নির্মিত উদাহরণ..UNINDENT

উদাহরণ থেকে এই কোডটি দেখায় কিভাবে GnuplotAggregator তৈরি করতে হয় যেমন আলোচনা করা হয়েছিল
উপরে।

অকার্যকর Create2dPlot ()
{
নেমস্পেস স্ট্যান্ড ব্যবহার করে;

string fileNameWithoutExtension = "gnuplot-এগ্রিগেটর";
string plotTitle = "গ্নুপ্লট অ্যাগ্রিগেটর প্লট";
string plotXAxisHeading = "সময় (সেকেন্ড)";
string plotYAxisHeading = "দ্বৈত মান";
string plotDatasetLabel = "ডেটা মান";
string datasetContext = "ডেটাসেট/প্রসঙ্গ/স্ট্রিং";

// একটি এগ্রিগেটর তৈরি করুন।
Ptr aggregator =
অবজেক্ট তৈরি করুন (fileNameWithoutExtension);

বিভিন্ন GnuplotAggregator অ্যাট্রিবিউট সেট করা আছে যার মধ্যে থাকবে 2-D ডেটাসেট
চক্রান্ত করা

// সমষ্টিগত বৈশিষ্ট্য সেট করুন।
aggregator->SetTerminal ("png");
aggregator->SetTitle (plotTitle);
aggregator->SetLegend (plotXAxisHeading, plotYAxisHeading);

// এগ্রিগেটরে একটি ডেটা সেট যোগ করুন।
aggregator->Add2dDataset (dataset Context, plotDatasetLabel);

// অ্যাগ্রিগেটর চালু করতে হবে
aggregator->সক্ষম ();

এর পরে, 2-ডি মানগুলি গণনা করা হয় এবং প্রতিটিতে পৃথকভাবে লেখা হয়৷
GnuplotAggregator ব্যবহার করে লিখুন2d() ফাংশন.

দ্বিগুণ সময়;
দ্বিগুণ মান;

// 2-ডি ডেটাসেট তৈরি করুন।
জন্য (সময় = -5.0; সময় <= +5.0; সময় += 1.0)
{
// 2-ডি বক্ররেখা গণনা করুন
//
// 2/XNUMX/XNUMX
// মান = সময়।
//
মান = সময় * সময়;

// প্লটে এই পয়েন্টটি যোগ করুন।
aggregator->Write2d (ডেটাসেট কনটেক্সট, সময়, মান);
}

// সমষ্টিকারীর জন্য ডেটা লগিং অক্ষম করুন।
aggregator->অক্ষম ();
}

ফাইল এগ্রিগেটর
FileAggregator একটি ফাইলে প্রাপ্ত মানগুলি পাঠায়।

FileAggregator 4টি বিভিন্ন ধরনের ফাইল তৈরি করতে পারে:

· বিন্যাসিত

· স্থান পৃথক করা হয়েছে (ডিফল্ট)

· কমা পৃথক করা হয়েছে

· ট্যাব আলাদা করা হয়েছে

ফর্ম্যাট করা ফাইলগুলি তাদের মুদ্রণের জন্য C-স্টাইল ফর্ম্যাট স্ট্রিং এবং sprintf() ফাংশন ব্যবহার করে
ফাইলের মান লেখা হচ্ছে।

সৃষ্টি
কী করা দরকার তা দেখানোর জন্য এখানে FileAggregator ধরনের একটি বস্তু তৈরি করা হবে।

স্মার্ট পয়েন্টার ক্লাস ব্যবহার করে ডাইনামিক মেমরিতে একটি ফাইল অ্যাগ্রিগেটর ঘোষণা করে (Ptr )
স্মার্ট পয়েন্টার সহ গতিশীল মেমরিতে একটি ফাইল অ্যাগ্রিগেটর তৈরি করতে, একজনকে কেবল কল করতে হবে
দ্য ns-3 পদ্ধতি CreateObject. থেকে নিম্নলিখিত কোড
src/stats/examples/file-aggregator-example.cc এটি কিভাবে করতে হয় তা দেখায়:

string fileName = "file-agregator-formatted-values.txt";

// একটি এগ্রিগেটর তৈরি করুন যাতে ফরম্যাট করা মান থাকবে।
Ptr aggregator =
অবজেক্ট তৈরি করুন (ফাইলের নাম, ফাইল অ্যাগ্রিগেটর::ফরম্যাটেড);

কনস্ট্রাক্টরের জন্য প্রথম আর্গুমেন্ট, ফাইলের নাম, লেখার জন্য ফাইলের নাম; দ্য
দ্বিতীয় যুক্তি, ফাইল টাইপ, লেখার জন্য ফাইলের প্রকার। এই FileAggregator একটি তৈরি করবে
"file-agregator-formatted-values.txt" নামের ফাইলটির মানগুলি দ্বারা নির্দিষ্ট করা মুদ্রিত
ফাইল টাইপ, অর্থাৎ, এই ক্ষেত্রে ফরম্যাট করা হয়েছে।

নিম্নলিখিত ফাইল প্রকার enum মান অনুমোদিত:

enum ফাইল টাইপ {
ফর্ম্যাটেড,
SPACE_SEPARATED,
COMMA_SEPARATED,
TAB_SEPARATED
};

উদাহরণ
একটি উদাহরণ এখানে বিস্তারিত আলোচনা করা হবে:

ফাইল অ্যাগ্রিগেটর উদাহরণ

ফাইল সমষ্টিবিদ উদাহরণ
ফাইল অ্যাগ্রিগেটর অনুশীলন করে এমন একটি উদাহরণ পাওয়া যাবে
src/stats/examples/file-aggregator-example.cc.

কমা দ্বারা পৃথক করা মানগুলির 2 কলাম সহ নিম্নলিখিত পাঠ্য ফাইলটি ব্যবহার করে তৈরি করা হয়েছিল
উদাহরণ

-5,25
-4,16
-3,9
-2,4
-1,1
0,0
1,1
2,4
3,9
4,16
5,25

উদাহরণ থেকে এই কোডটি দেখায় যে কীভাবে ফাইল অ্যাগ্রিগেটর তৈরি করা যায় যেমন আলোচনা করা হয়েছিল
উপরে।

অকার্যকর তৈরি করুন কমা বিভাজিত ফাইল ()
{
নেমস্পেস স্ট্যান্ড ব্যবহার করে;

string fileName = "ফাইল-এগ্রিগেটর-কমা-বিভাজিত.txt";
string datasetContext = "ডেটাসেট/প্রসঙ্গ/স্ট্রিং";

// একটি এগ্রিগেটর তৈরি করুন।
Ptr aggregator =
অবজেক্ট তৈরি করুন (ফাইলের নাম, ফাইল অ্যাগ্রিগেটর::COMMA_SEPARATED);

FileAggregator বৈশিষ্ট্য সেট করা হয়.

// অ্যাগ্রিগেটর চালু করতে হবে
aggregator->সক্ষম ();

এর পরে, 2-ডি মানগুলি গণনা করা হয় এবং প্রতিটিতে পৃথকভাবে লেখা হয়৷
FileAggregator ব্যবহার করে লিখুন2d() ফাংশন.

দ্বিগুণ সময়;
দ্বিগুণ মান;

// 2-ডি ডেটাসেট তৈরি করুন।
জন্য (সময় = -5.0; সময় <= +5.0; সময় += 1.0)
{
// 2-ডি বক্ররেখা গণনা করুন
//
// 2/XNUMX/XNUMX
// মান = সময়।
//
মান = সময় * সময়;

// প্লটে এই পয়েন্টটি যোগ করুন।
aggregator->Write2d (ডেটাসেট কনটেক্সট, সময়, মান);
}

// সমষ্টিকারীর জন্য ডেটা লগিং অক্ষম করুন।
aggregator->অক্ষম ();
}

ফর্ম্যাট করা মানগুলির 2 কলাম সহ নিম্নলিখিত পাঠ্য ফাইলটিও ব্যবহার করে তৈরি করা হয়েছিল
উদাহরণ

সময় = -5.000e+00 মান = 25
সময় = -4.000e+00 মান = 16
সময় = -3.000e+00 মান = 9
সময় = -2.000e+00 মান = 4
সময় = -1.000e+00 মান = 1
সময় = 0.000e+00 মান = 0
সময় = 1.000e+00 মান = 1
সময় = 2.000e+00 মান = 4
সময় = 3.000e+00 মান = 9
সময় = 4.000e+00 মান = 16
সময় = 5.000e+00 মান = 25

উদাহরণ থেকে এই কোডটি দেখায় যে কীভাবে ফাইল অ্যাগ্রিগেটর তৈরি করা যায় যেমন আলোচনা করা হয়েছিল
উপরে।

অকার্যকর CreateFormattedFile ()
{
নেমস্পেস স্ট্যান্ড ব্যবহার করে;

string fileName = "file-agregator-formatted-values.txt";
string datasetContext = "ডেটাসেট/প্রসঙ্গ/স্ট্রিং";

// একটি এগ্রিগেটর তৈরি করুন যাতে ফরম্যাট করা মান থাকবে।
Ptr aggregator =
অবজেক্ট তৈরি করুন (ফাইলের নাম, ফাইল অ্যাগ্রিগেটর::ফরম্যাটেড);

ফাইল অ্যাগ্রিগেটর অ্যাট্রিবিউট সেট করা আছে, সি-স্টাইল ফর্ম্যাট স্ট্রিং ব্যবহার করার জন্য।

// মানগুলির জন্য বিন্যাস সেট করুন।
aggregator->Set2dFormat ("Time = %.3e\tValue = %.0f");

// অ্যাগ্রিগেটর চালু করতে হবে
aggregator->সক্ষম ();

এর পরে, 2-ডি মানগুলি গণনা করা হয় এবং প্রতিটিতে পৃথকভাবে লেখা হয়৷
FileAggregator ব্যবহার করে লিখুন2d() ফাংশন.

দ্বিগুণ সময়;
দ্বিগুণ মান;

// 2-ডি ডেটাসেট তৈরি করুন।
জন্য (সময় = -5.0; সময় <= +5.0; সময় += 1.0)
{
// 2-ডি বক্ররেখা গণনা করুন
//
// 2/XNUMX/XNUMX
// মান = সময়।
//
মান = সময় * সময়;

// প্লটে এই পয়েন্টটি যোগ করুন।
aggregator->Write2d (ডেটাসেট কনটেক্সট, সময়, মান);
}

// সমষ্টিকারীর জন্য ডেটা লগিং অক্ষম করুন।
aggregator->অক্ষম ();
}

অ্যাডাপ্টার
এই বিভাগে অ্যাডাপ্টার ক্লাস দ্বারা একটিকে প্রদত্ত কার্যকারিতাগুলির বিবরণ রয়েছে৷ ns-3
সিমুলেশন এই বিভাগটির সাথে সিমুলেশন তৈরি করতে আগ্রহী ব্যবহারকারীদের জন্য বোঝানো হয়েছে৷
ns-3 টুলস এবং ডেটা কালেকশন ফ্রেমওয়ার্ক ব্যবহার করে, যার মধ্যে অ্যাডাপ্টার ক্লাস একটি অংশ,
তাদের সিমুলেশনের ফলাফলের সাথে ডেটা আউটপুট তৈরি করতে।

দ্রষ্টব্য: 'অ্যাডাপ্টর' শব্দটিও 'অ্যাডাপ্টার' বানান হতে পারে; আমরা সারিবদ্ধ বানান বেছে নিয়েছি
C++ স্ট্যান্ডার্ড সহ।

এডাপটার সংক্ষিপ্ত বিবরণ
একটি অ্যাডাপ্টার বিভিন্ন ধরনের DCF বস্তুর মধ্যে সংযোগ করতে ব্যবহৃত হয়।

আজ অবধি, একটি অ্যাডাপ্টার প্রয়োগ করা হয়েছে:

· টাইম সিরিজ অ্যাডাপ্টর

সময় ক্রম এডাপটার
TimeSeriesAdaptor প্রোবকে কোনো প্রয়োজন ছাড়াই সরাসরি অ্যাগ্রিগেটরদের সাথে সংযোগ করতে দেয়
এর মধ্যে কালেক্টর।

উভয় বাস্তবায়িত DCF সাহায্যকারীরা তদন্ত করার জন্য TimeSeriesAdaptors ব্যবহার করে
বিভিন্ন ধরনের মান এবং বর্তমান সময়ের আউটপুট এবং উভয় রূপান্তর সহ মান
দ্বিগুণ করতে

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

সুযোগ/সীমাবদ্ধতা
এই বিভাগে তথ্য সংগ্রহের ফ্রেমওয়ার্কের সুযোগ এবং সীমাবদ্ধতা নিয়ে আলোচনা করা হয়েছে।

বর্তমানে, শুধুমাত্র এই প্রোবগুলি DCF এ প্রয়োগ করা হয়েছে:

বুলিয়ানপ্রোব

· ডাবলপ্রোব

· Uinteger8Probe

· Uinteger16Probe

· Uinteger32Probe

· টাইমপ্রোব

· প্যাকেটপ্রোব

· ApplicationPacketProbe

· Ipv4PacketProbe

বর্তমানে, DCF-এ কোন কালেক্টর পাওয়া যায় না, যদিও একজন BasicStatsCollector এর অধীনে
উন্নয়ন।

বর্তমানে, শুধুমাত্র এই Aggregators DCF-তে প্রয়োগ করা হয়েছে:

· GnuplotAggregator

· ফাইল অ্যাগ্রিগেটর

বর্তমানে, শুধুমাত্র এই অ্যাডাপ্টারটি DCF এ প্রয়োগ করা হয়েছে:

টাইম-সিরিজ অ্যাডাপ্টর।

ভবিষ্যৎ হয়া যাই ?
এই বিভাগে ডেটা সংগ্রহের ফ্রেমওয়ার্কের ভবিষ্যতের কাজগুলি নিয়ে আলোচনা করা হয়েছে।

এখানে কিছু জিনিস যা এখনও করা দরকার:

· আরও ট্রেস উত্সকে সংযুক্ত করুন ns-3 সিমুলেটর থেকে আরও মান পেতে কোড।

বর্তমানে যত ধরনের প্রোব আছে তার চেয়ে বেশি ধরনের প্রোব প্রয়োগ করুন।

শুধুমাত্র একক বর্তমান 2-ডি কালেক্টর, বেসিকস্ট্যাটসকলেক্টরের চেয়ে আরও বেশি কিছু প্রয়োগ করুন।

· আরও অ্যাগ্রিগেটর প্রয়োগ করুন।

· শুধু অ্যাডাপ্টরের চেয়ে বেশি কিছু প্রয়োগ করুন।

ডিএসডিভি প্রমাথী


ডেস্টিনেশন-সিকোয়েন্সড ডিসটেন্স ভেক্টর (ডিএসডিভি) রাউটিং প্রোটোকল একটি প্রো-অ্যাকটিভ,
চার্লস ই পারকিন্স এবং প্রভিন দ্বারা তৈরি MANET-এর জন্য টেবিল-চালিত রাউটিং প্রোটোকল
1994 সালে ভাগবত। এটি রুট নির্বাচনে মেট্রিক হিসাবে হপ গণনা ব্যবহার করে।

এই মডেল দ্বারা বিকশিত হয়েছে দ্য রেসিলিনেটস গবেষণা গ্রুপ কানসাস বিশ্ববিদ্যালয়ে। ক
এই মডেলের কাগজ এ বিদ্যমান এই URL টি.

ডিএসডিভি প্রমাথী সংক্ষিপ্ত বিবরণ
DSDV রাউটিং টেবিল: প্রতিটি নোড এটিতে থাকা অন্যান্য নোডগুলির তালিকাভুক্ত একটি টেবিল বজায় রাখবে
হয় সরাসরি বা কিছু প্রতিবেশীর মাধ্যমে পরিচিত। প্রতিটি নোডে একটি একক এন্ট্রি আছে
রাউটিং টেবিল। এন্ট্রিতে নোডের আইপি ঠিকানা সম্পর্কে তথ্য থাকবে, সর্বশেষ পরিচিত
যে নোড পৌঁছানোর জন্য ক্রম সংখ্যা এবং হপ গণনা। এই বিবরণ বরাবর টেবিল
গন্তব্য নোডে পৌঁছানোর জন্য নেক্সটহপ প্রতিবেশীর ট্র্যাক রাখে, এর টাইমস্ট্যাম্প
যে নোডের জন্য প্রাপ্ত শেষ আপডেট।

DSDV আপডেট বার্তা তিনটি ক্ষেত্র নিয়ে গঠিত, গন্তব্য ঠিকানা, ক্রম সংখ্যা এবং
হপ কাউন্ট।

প্রতিটি নোড DSDV আপডেট পাঠাতে 2টি প্রক্রিয়া ব্যবহার করে। তারা হল,

1.

পর্যাবৃত্ত আপডেট
প্রতি m_periodicUpdateInterval(default:15s) পরে পর্যায়ক্রমিক আপডেট পাঠানো হয়।
এই আপডেটে নোডটি তার সম্পূর্ণ রাউটিং টেবিল সম্প্রচার করে।

2.

ট্রিগার আপডেট
ট্রিগার আপডেটগুলি পর্যায়ক্রমিক আপডেটের মধ্যে ছোট আপডেট। এই আপডেট
যখনই একটি নোড একটি DSDV প্যাকেট গ্রহণ করে যা এর পরিবর্তন ঘটায় তখনই পাঠানো হয়
রাউটিং টেবিল। মূল কাগজে কখন কী পরিবর্তনের জন্য তা স্পষ্টভাবে উল্লেখ করা হয়নি
টেবিলে একটি DSDV আপডেট পাঠানো উচিত। বর্তমান ইমপ্লিমেন্টেশন পাঠায়
রাউটিং টেবিলের পরিবর্তন নির্বিশেষে একটি আপডেট বের করুন।

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

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

বর্তমান বাস্তবায়ন DSDV-এর উপরের সমস্ত বৈশিষ্ট্যগুলিকে কভার করে৷ বর্তমান
ইমপ্লিমেন্টেশনে বাফার প্যাকেটের জন্য একটি অনুরোধ সারি রয়েছে যার কোনো রুট নেই
গন্তব্য. ডিফল্ট গন্তব্য প্রতি 5 প্যাকেট পর্যন্ত বাফার সেট করা হয়.

তথ্যসূত্র
কাগজের লিঙ্ক: http://portal.acm.org/citation.cfm?doid=190314.190336

DSR প্রমাথী


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

এই মডেল দ্বারা বিকশিত হয়েছে দ্য রেসিলিনেটস গবেষণা গ্রুপ কানসাস বিশ্ববিদ্যালয়ে।

DSR প্রমাথী সংক্ষিপ্ত বিবরণ
এই মডেলটি ডায়নামিক সোর্স রাউটিং (DSR) প্রোটোকলের বেস স্পেসিফিকেশন প্রয়োগ করে।
এর উপর ভিত্তি করে বাস্তবায়ন করা হয় জন্য RFC 4728, RFC-তে কিছু এক্সটেনশন এবং পরিবর্তন সহ
বিশেষ উল্লেখ।

ডিএসআর একটি অন-ডিমান্ড আচরণে কাজ করে। অতএব, আমাদের ডিএসআর মডেল সমস্ত প্যাকেট বাফার করে যখন ক
রুট অনুরোধ প্যাকেট (RREQ) ছড়িয়ে দেওয়া হয়। আমরা একটি প্যাকেট বাফার বাস্তবায়ন
dsr-rsendbuff.cc. প্যাকেট সারিতে পুরানো প্যাকেটের আবর্জনা সংগ্রহ করা হয় এবং ক
সারি আকারের সীমা। পাঠান বাফার থেকে প্যাকেট পাঠানো হলে, এটি সারিবদ্ধ হবে
পরবর্তী হপ স্বীকৃতি জন্য রক্ষণাবেক্ষণ বাফার.

রক্ষণাবেক্ষণ বাফার তারপরে ইতিমধ্যে পাঠানো প্যাকেটগুলিকে বাফার করে এবং এর জন্য অপেক্ষা করে
প্যাকেট বিতরণের বিজ্ঞপ্তি। প্রোটোকল অপারেশন দৃঢ়ভাবে ভাঙা লিঙ্ক উপর নির্ভর করে
সনাক্তকরণ প্রক্রিয়া। আমরা RFC ভিত্তিক প্রস্তাবিত তিনটি হিউরিস্টিক প্রয়োগ করি
অনুসরণ:

প্রথমত, সম্ভব হলে আমরা লিঙ্ক লেয়ার ফিডব্যাক ব্যবহার করি, যা এর দ্রুততম মেকানিজমও
এই তিনটি লিঙ্ক ত্রুটি সনাক্ত করতে. ফ্রেম ট্রান্সমিশন হলে একটি লিঙ্ক ভাঙ্গা বলে মনে করা হয়
সমস্ত পুনঃপ্রচারের জন্য একটি ট্রান্সমিশন ব্যর্থতার ফলাফল। এই প্রক্রিয়া সক্রিয় জন্য বোঝানো হয়
লিঙ্ক এবং তার অনুপস্থিতির তুলনায় অনেক দ্রুত কাজ করে। ডিএসআর লিঙ্ক স্তর সনাক্ত করতে সক্ষম
ট্রান্সমিশন ব্যর্থতা এবং এটি ভাঙা হিসাবে অবহিত করুন। রুট পুনর্গণনা ট্রিগার করা হবে
প্রয়োজন হলে. ব্যবহারকারী লিঙ্ক স্তর স্বীকৃতি ব্যবহার করতে না চাইলে, এটি দ্বারা টিউন করা যেতে পারে
"dsr-routing.cc"-এ "LinkAcknowledgement" অ্যাট্রিবিউটকে মিথ্যা হিসেবে সেট করুন।

দ্বিতীয়ত, যখনই সম্ভব প্যাসিভ স্বীকৃতি ব্যবহার করা উচিত। নোড চালু হয়
"প্রোমিসকুউস" রিসিভ মোড, যেখানে এটি নিজের জন্য নির্ধারিত নয় এমন প্যাকেটগুলি গ্রহণ করতে পারে এবং
যখন নোড সেই ডেটা প্যাকেটটিকে তার গন্তব্যে পৌঁছে দেওয়ার আশ্বাস দেয়, তখন এটি বাতিল করে
প্যাসিভ স্বীকৃতি টাইমার।

সবশেষে, আমরা একটি প্যাকেটের রসিদ জানানোর জন্য একটি নেটওয়ার্ক স্তর স্বীকৃতি স্কিম ব্যবহার করি। রুট
অনুরোধ প্যাকেট স্বীকার বা পুনরায় প্রেরণ করা হবে না.

রুট ক্যাশে বাস্তবায়ন পুরানো এন্ট্রি এবং রাজ্যের আবর্জনা সংগ্রহ সমর্থন করে
মেশিন, মান হিসাবে সংজ্ঞায়িত। এটি একটি STL মানচিত্র ধারক হিসাবে প্রয়োগ করে। মূল হল
গন্তব্য আইপি ঠিকানা.

ডিএসআর আইপি হেডারে সরাসরি অ্যাক্সেসের সাথে কাজ করে এবং নেটওয়ার্ক এবং পরিবহনের মধ্যে কাজ করে
স্তর যখন প্যাকেট পরিবহণ স্তর থেকে পাঠানো হয়, তখন এটি নিজেই ডিএসআর এবং ডিএসআরে চলে যায়
শিরোনাম সংযুক্ত করা হয়।

আমাদের দুটি ক্যাশিং প্রক্রিয়া রয়েছে: পাথ ক্যাশে এবং লিঙ্ক ক্যাশে। পাথ ক্যাশে পুরো সংরক্ষণ করে
ক্যাশে পাথ পাথগুলি হপ গণনার উপর ভিত্তি করে বাছাই করা হয় এবং যখনই একটি পথ থাকে
ব্যবহার করা যাবে না, আমরা পরবর্তী পথে পরিবর্তন. লিঙ্ক ক্যাশে একটি সামান্য ভাল
এই অর্থে ডিজাইন করুন যে এটি বিভিন্ন সাবপাথ ব্যবহার করে এবং ব্যবহার করে বাস্তবায়িত লিঙ্ক ক্যাশে ব্যবহার করে
Dijsktra অ্যালগরিদম, এবং এই অংশ সং Luan দ্বারা বাস্তবায়িত হয়[ইমেল সুরক্ষিত]>.

নিম্নলিখিত ঐচ্ছিক প্রোটোকল অপ্টিমাইজেশান প্রয়োগ করা হয় না:

· প্রবাহ অবস্থা

· প্রথম হপ এক্সটার্নাল (F), লাস্ট হপ এক্সটার্নাল (L) পতাকা

· অজানা ডিএসআর বিকল্পগুলি পরিচালনা করা

·

দুই ধরনের of ভুল শিরোনাম:

1. প্রবাহ অবস্থা সমর্থিত নয় বিকল্প

2. অসমর্থিত বিকল্প (সিমুলেশনে ঘটবে না)

DSR আপডেটের in ns-3.17
আমরা মূলত Ptr এ "TxErrHeader" ব্যবহার করেছি a এর ট্রান্সমিশন ত্রুটি নির্দেশ করতে
লিংক লেয়ারে নির্দিষ্ট প্যাকেট, যদিও, এটা ঠিক তখন থেকে কাজ করছিল না
প্যাকেটটি বাদ দেওয়া হয়েছিল, এই শিরোনামটি ট্রেস ফাইলে রেকর্ড করা হয়নি। আমরা ক
লিঙ্ক লেয়ার নোটিফিকেশন মেকানিজম বাস্তবায়নে ভিন্ন পথ। আমরা তাকান
প্যাকেট রিসিভ ইভেন্ট খুঁজে বের করে ফাইল ট্রেস করুন। যদি আমরা একটি তথ্যের জন্য ইভেন্ট প্রাপ্ত খুঁজে
প্যাকেট, আমরা সফল ডেটা ডেলিভারির জন্য সূচক হিসাবে গণনা করি।

দরকারী পরামিতি
+------------------------- +------------------------- -------------+-------------+
| পরামিতি | বর্ণনা | ডিফল্ট |
+================================================ ==============+=============
| MaxSendBuffLen | প্যাকেটের সর্বোচ্চ সংখ্যা 64 |
| | পাঠান বাফারে সংরক্ষণ করা হবে | |
+------------------------- +------------------------- -------------+-------------+
| MaxSendBuffTime | সর্বোচ্চ সময় প্যাকেট সারিবদ্ধ হতে পারে | সেকেন্ড(30) |
| | পাঠান বাফারে | |
+------------------------- +------------------------- -------------+-------------+
| MaxMaintLen | প্যাকেটের সর্বোচ্চ সংখ্যা 50 |
| | রক্ষণাবেক্ষণ বাফারে সংরক্ষণ করা হবে | |
+------------------------- +------------------------- -------------+-------------+
| MaxMaintTime | সর্বোচ্চ সময় প্যাকেট সারিবদ্ধ হতে পারে | সেকেন্ড(30) |
| | রক্ষণাবেক্ষণ বাফারে | |
+------------------------- +------------------------- -------------+-------------+
| ম্যাক্সক্যাচেলেন | রুট এন্ট্রির সর্বাধিক সংখ্যা | 64 |
| | যা রুট ক্যাশে সংরক্ষণ করা যায় |
+------------------------- +------------------------- -------------+-------------+
| RouteCacheTimeout | রুট ক্যাশে সর্বোচ্চ সময় | সেকেন্ড(300)|
| | রুট ক্যাশে সারিবদ্ধ করা | |
+------------------------- +------------------------- -------------+-------------+
| @reqRetries | রিট্রান্সমিশনের সর্বোচ্চ সংখ্যা | 16 |
| | একটি রুট আবিষ্কারের অনুরোধের জন্য | |
+------------------------- +------------------------- -------------+-------------+
| ক্যাশে টাইপ | লিঙ্ক ক্যাশে ব্যবহার করুন বা পাথ ক্যাশে ব্যবহার করুন | "LinkCache" |
| | | |
+------------------------- +------------------------- -------------+-------------+
| LinkAcknowledgement | লিঙ্ক স্তর স্বীকৃতি সক্ষম করুন | সত্য |
| | প্রক্রিয়া | |
+------------------------- +------------------------- -------------+-------------+

বাস্তবায়ন অদলবদল
·

সার্জারির DsrFs হেডার হয়েছে যোগ 3 ক্ষেত্র: বার্তা টাইপ করুন, উৎস আইডি, গন্তব্য আইডি, এবং এইগুলো
পরিবর্তনগুলি কেবল উন্নত পোস্ট প্রসেসিং

1. কন্ট্রোল প্যাকেট থেকে ডাটা প্যাকেট সনাক্ত করতে বার্তার ধরন ব্যবহার করা হয়

2. সোর্স আইডি ব্যবহার করা হয় ডাটা প্যাকেটের আসল উৎস শনাক্ত করার জন্য, যেহেতু আমাদের কাছে আছে
প্যাকেট হপ-বাই-হপ বিতরণ করতে এবং ipv4header আসল বহন করছে না
উৎস এবং গন্তব্য আইপি ঠিকানা প্রয়োজন হিসাবে

3. গন্তব্য আইডি উপরের একই কারণে

· রুট উত্তর শিরোনামটি DSR RFC-তে শব্দ-সারিবদ্ধ নয়, এটিকে শব্দ-সারিবদ্ধ-এ পরিবর্তন করুন
বাস্তবায়ন

· DSR পরিবহন এবং নেটওয়ার্ক প্রোটোকলের মধ্যে একটি শিম হেডার হিসাবে কাজ করে, এটির নিজস্ব প্রয়োজন
ফরওয়ার্ডিং মেকানিজম, আমরা প্যাকেট ট্রান্সমিশন হপ-বাই-হপ ডেলিভারিতে পরিবর্তন করছি, তাই
প্যাকেট ডেলিভারি জানানোর জন্য আমরা ডিএসআর ফিক্সড হেডারে দুটি ক্ষেত্র যোগ করেছি

বর্তমান রুট আচ্ছাদন বাস্তবায়ন
এই বাস্তবায়নে "পাথ ক্যাশে" ব্যবহার করা হয়েছে, যা বাস্তবায়ন করা সহজ এবং লুপ-মুক্ত নিশ্চিত করে
পাথ:

পাথ ক্যাশে স্বয়ংক্রিয় মেয়াদ শেষ হওয়ার নীতি রয়েছে

· ক্যাশে একটি নির্দিষ্ট গন্তব্যের জন্য একাধিক রুট এন্ট্রি সংরক্ষণ করে এবং এন্ট্রিগুলিকে সাজান
হপ গণনার উপর ভিত্তি করে

· MaxEntryEachDst একটি একক জন্য সংরক্ষিত সর্বাধিক এন্ট্রি পরিবর্তন করতে টিউন করা যেতে পারে
গন্তব্য

একটি গন্তব্যের জন্য একাধিক রুট যোগ করার সময়, রুটটির উপর ভিত্তি করে তুলনা করা হয়
হপ-কাউন্ট এবং মেয়াদ শেষ হওয়ার সময়, কম হপ গণনা বা অপেক্ষাকৃত নতুন রুট
বিশেষ সুবিধাপ্রাপ্ত

ভবিষ্যত বাস্তবায়নে অন্য একটি সম্ভাবনা হিসেবে "লিঙ্ক ক্যাশে" অন্তর্ভুক্ত হতে পারে

DSR নির্দেশনা
রাউটিং প্রোটোকল হিসাবে DSR চালানোর সময় নিম্নলিখিতগুলি মনে রাখা উচিত:

· NodeTraversalTime হল দুটি প্রতিবেশী নোড অতিক্রম করতে যে সময় লাগে এবং হওয়া উচিত
ট্রান্সমিশন পরিসীমা মাপসই নির্বাচিত

প্যাসিভঅ্যাকটাইমআউট হল রক্ষণাবেক্ষণ বাফারে প্যাসিভের জন্য অপেক্ষা করার সময়
স্বীকৃতি, সাধারণত NodeTraversalTime এর দুই বার হিসাবে সেট করা হয়

নোডের বেগ বেশি হলে রুটক্যাচেটাইমআউট ছোট মান সেট করা উচিত।
ডিফল্ট মান হল 300s।

সাহায্যকারী
একটি নোড চালানোর জন্য DSR, সবচেয়ে সহজ উপায় হল DsrHelper এবং DsrMainHelpers ব্যবহার করা
আপনার সিমুলেশন স্ক্রিপ্টে। এই ক্ষেত্রে:

DsrHelper dsr;
DsrMainHelper dsrMain;
dsrMain.Install (dsr, adhocNodes);

ভিতরে উদাহরণ স্ক্রিপ্ট src/dsr/examples/ ডিএসআর ভিত্তিক নোডেসিনের ব্যবহার প্রদর্শন করুন
বিভিন্ন পরিস্থিতিতে। সাহায্যকারী উত্স ভিতরে পাওয়া যাবে
src/dsr/helper/dsr-main-helper।{h,cc} এবং src/dsr/helper/dsr-helper৷h,cc}

উদাহরণ
উদাহরণ পাওয়া যাবে src/dsr/examples/:

· dsr.cc একটি ঐতিহ্যগত MANETs পরিবেশের মধ্যে রাউটিং প্রোটোকল হিসাবে DSR ব্যবহার করে[3]।

DSR এছাড়াও রাউটিং তুলনা ক্ষেত্রে নির্মিত হয় উদাহরণ/রাউটিং/:

· manet-routing-compare.cc বিল্ট ইন MANET রাউটিং প্রোটোকল এবং এর সাথে একটি তুলনামূলক কেস
নিজের ফলাফল তৈরি করতে পারে।

ভ্যালিডেশন
এই মডেলটি নিম্নরূপ পরীক্ষা করা হয়েছে:

· ডিএসআর-এর অভ্যন্তরীণ যাচাই করার জন্য ইউনিট পরীক্ষা লেখা হয়েছে। এই পাওয়া যাবে
src/dsr/test/dsr-test-suite.cc. এই পরীক্ষাগুলি ডিএসআর মডিউলের ভিতরের পদ্ধতিগুলি কিনা তা যাচাই করে
যা প্যাকেট বাফারের সাথে ডিল করে, হেডার সঠিকভাবে কাজ করে।

· [3] অনুরূপ সিমুলেশন কেস পরীক্ষা করা হয়েছে এবং তুলনামূলক ফলাফল পেয়েছে।

· manet-routing-compare.cc অন্য তিনটি রাউটিং এর সাথে DSR তুলনা করতে ব্যবহার করা হয়েছে
প্রোটোকল।

3 সালে ns-2011 কর্মশালায় এই ফলাফলগুলির উপর একটি গবেষণাপত্র উপস্থাপন করা হয়েছিল।

সীমাবদ্ধতা
মডেলটি সম্পূর্ণরূপে সঙ্গতিপূর্ণ নয় জন্য RFC 4728. উদাহরণ হিসাবে, Dsr ফিক্সড সাইজ হেডার আছে
বাড়ানো হয়েছে এবং এটি আরএফসি স্পেসিফিকেশনের চেয়ে চার অক্টেক্ট দীর্ঘ। এর ফলে,
DSR হেডার সঠিকভাবে Wireshark দ্বারা ডিকোড করা যাবে না।

RFC এর সাথে মডেলটি সম্পূর্ণ সম্মতি ভবিষ্যতের জন্য পরিকল্পনা করা হয়েছে।

তথ্যসূত্র
[১] মূল কাগজ: http://www.monarch.cs.rice.edu/monarch-papers/dsr-chapter00.pdf

[২] RFC 2 http://www6.ietf.org/rfc/rfc4728.txt

[৩] ব্রোচের তুলনামূলক কাগজ: http://www.monarch.cs.rice.edu/monarch-papers/mobicom98.ps

অনুকরণ এক নজরে


ns-3 টেস্টবেড এবং ভার্চুয়াল মেশিন পরিবেশে একীকরণের জন্য ডিজাইন করা হয়েছে। আমরা
দুই ধরনের নেট ডিভাইস প্রদানের মাধ্যমে এই চাহিদা পূরণ করেছে। প্রথম ধরনের ডিভাইস
একটি ফাইল বর্ণনাকারী নেট ডিভাইস (FdNetDevice), যা একটি জেনেরিক ডিভাইস প্রকার যা করতে পারে
একটি ফাইল বর্ণনাকারী থেকে পড়ুন এবং লিখুন। এই ফাইলের বর্ণনাকারীর সাথে বিভিন্ন যুক্ত করে
হোস্ট সিস্টেমে জিনিস, বিভিন্ন ক্ষমতা প্রদান করা যেতে পারে. উদাহরণস্বরূপ,
এমুলেশন প্রদানের জন্য FdNetDevice একটি অন্তর্নিহিত প্যাকেট সকেটের সাথে যুক্ত হতে পারে
ক্ষমতা এই অনুমতি দেয় ns-3 একটি "বাস্তব" নেটওয়ার্কে ডেটা পাঠাতে সিমুলেশন। দ্বিতীয়
ধরনের, একটি বলা হয় টোকা নেটডিভাইস একটি "বাস্তব" হোস্ট একটি অংশগ্রহণ করার অনুমতি দেয় ns-3 সিমুলেশন হিসাবে
যদি এটি সিমুলেটেড নোডগুলির মধ্যে একটি হয়। একটি ns-3 সিমুলেশন যে কোনো সঙ্গে নির্মিত হতে পারে
সিমুলেটেড বা ইমুলেটেড ডিভাইসের সমন্বয়।

বিঃদ্রঃ: ns-3.17-এর আগে, ইমুলেশন ক্ষমতা একটি বিশেষ ডিভাইস দ্বারা সরবরাহ করা হয়েছিল যাকে বলা হয়
an পক্ষীবিশেষ নেটডিভাইস; দ্য পক্ষীবিশেষ NetDevice দ্বারা প্রতিস্থাপিত হয়েছে FdNetDevice.

আমরা যে ব্যবহারের ক্ষেত্রে সমর্থন করতে চাই তার মধ্যে একটি হল টেস্টবেড। একটি একটি কংক্রিট উদাহরণ
এই ধরনের পরিবেশ হল অরবিট টেস্টবেড। অরবিট হল একটি পরীক্ষাগার এমুলেটর/ফিল্ড ট্রায়াল
নেটওয়ার্ক 400 802.11 রেডিও নোডের একটি দ্বিমাত্রিক গ্রিড হিসাবে সাজানো। আমরা সঙ্গে একীভূত
লোড এবং চালানোর জন্য তাদের "ইমেজিং" প্রক্রিয়া ব্যবহার করে অরবিট করুন ns-3 অরবিটের সিমুলেশন
অ্যারে আমরা আমাদের ব্যবহার করতে পারেন EmuFdNetDevice টেস্টবেডে হার্ডওয়্যার চালাতে এবং আমরা পারি
হয় ব্যবহার করে ফলাফল জমা ns-3 ট্রেসিং এবং লগিং ফাংশন, বা নেটিভ
অরবিট তথ্য সংগ্রহের কৌশল। দেখা http://www.orbit-lab.org/ অরবিট সম্পর্কে বিস্তারিত জানার জন্য
পরীক্ষিত।

এই ধরনের একটি সিমুলেশন নিম্নলিখিত চিত্রে দেখানো হয়েছে:
[ছবি] টেস্টবেড এমুলেশনের উদাহরণ বাস্তবায়ন..UNINDENT

আপনি দেখতে পাচ্ছেন যে আলাদা হোস্ট রয়েছে, প্রতিটি একটি "গ্লোবাল" এর উপসেট চালাচ্ছে
সিমুলেশন পরিবর্তে একটি ns-3 হোস্ট সংযোগ চ্যানেল, আমরা বাস্তব হার্ডওয়্যার ব্যবহার
টেস্টবেড দ্বারা সরবরাহ করা হয়। এই অনুমতি দেয় ns-3 অ্যাপ্লিকেশন এবং প্রোটোকল স্ট্যাক সংযুক্ত একটি
বাস্তব হার্ডওয়্যারের মাধ্যমে যোগাযোগ করার জন্য সিমুলেশন নোড।

আমরা আশা করি এই কনফিগারেশনের জন্য প্রাথমিক ব্যবহার পুনরাবৃত্তিযোগ্য উৎপন্ন হবে
একটি বাস্তব-বিশ্ব নেটওয়ার্ক পরিবেশে পরীক্ষামূলক ফলাফল যা অন্তর্ভুক্ত করে ns-3
ট্রেসিং, লগিং, ভিজ্যুয়ালাইজেশন এবং পরিসংখ্যান সংগ্রহের সরঞ্জাম।

যা মূলত একটি বিপরীত কনফিগারেশন হিসাবে দেখা যেতে পারে, আমরা "বাস্তব" মেশিনের অনুমতি দিই
একটির সাথে একীভূত করতে নেটিভ অ্যাপ্লিকেশন এবং প্রোটোকল স্ট্যাক চালাচ্ছে ns-3 সিমুলেশন।
এটি একটি বাস্তব মেশিনের সাথে সংযুক্ত বড় নেটওয়ার্কগুলির সিমুলেশনের জন্য অনুমতি দেয় এবং এছাড়াও
ভার্চুয়ালাইজেশন সক্ষম করে। এই ধরনের একটি সিমুলেশন নিম্নলিখিত চিত্রে দেখানো হয়েছে:
[ছবি] অনুকরণ করা চ্যানেলের বাস্তবায়ন ওভারভিউ..UNINDENT

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

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

আমরা আশা করি যে এই পরিবেশের জন্য সাধারণ ব্যবহারের ক্ষেত্রে আচরণ বিশ্লেষণ করা হবে
বড় সিমুলেটেড উপস্থিতিতে নেটিভ অ্যাপ্লিকেশন এবং প্রোটোকল স্যুট ns-3
নেটওয়ার্ক।

ফাইল বর্ণনাকারী নেটডিভাইস
সার্জারির src/fd-নেট-ডিভাইস মডিউল প্রদান করে FdNetDevice ক্লাস, যা পড়তে সক্ষম এবং
ব্যবহারকারী দ্বারা প্রদত্ত একটি ফাইল বর্ণনাকারী ব্যবহার করে ট্র্যাফিক লিখুন। এই ফাইল বর্ণনাকারী হতে পারে
একটি TAP ডিভাইসের সাথে, একটি কাঁচা সকেটের সাথে, একটি ব্যবহারকারীর স্থান তৈরি/ব্যবহারকারী প্রক্রিয়ার সাথে সম্পর্কিত
ট্রাফিক, ইত্যাদি। ব্যবহারকারীর সম্পূর্ণ স্বাধীনতা আছে কিভাবে বহিরাগত ট্র্যাফিক তৈরি হয় এবং
ns-3 ট্রাফিক গ্রাস করা হয়।

বহিরাগত ট্র্যাফিকের সাথে একটি সিমুলেশন যুক্ত করার জন্য বিভিন্ন প্রক্রিয়ার মাধ্যমে প্রদান করা যেতে পারে
সাহায্যকারী ক্লাস। তিনটি নির্দিষ্ট সাহায্যকারী প্রদান করা হয়:

· EmuFdNetDeviceHelper (সংযুক্ত করতে ns-3 হোস্টে একটি শারীরিক ডিভাইস সহ ডিভাইস
মেশিন)

· TapFdNetDeviceHelper (একটি ট্যাপ থেকে ফাইল বর্ণনাকারীর সাথে ns-3 ডিভাইসটি সংযুক্ত করতে
হোস্ট মেশিনে ডিভাইস)

· PlanteLabFdNetDeviceHelper (প্ল্যানেটল্যাব নোডগুলিতে ট্যাপ ডিভাইস তৈরি করতে স্বয়ংক্রিয়ভাবে,
সক্রিয় ns-3 সিমুলেশন যা ইন্টারনেট ব্যবহার করে ট্রাফিক পাঠাতে এবং গ্রহণ করতে পারে
প্ল্যানেটল্যাব সংস্থান।

মডেল বিবরণ
এই মডিউলের সোর্স কোড ডিরেক্টরিতে থাকে src/fd-নেট-ডিভাইস.

FdNetDevice হল একটি বিশেষ ধরনের ns-3 NetDevice যা একটি ফাইলে এবং থেকে ট্রাফিক পড়তে পারে
বর্ণনাকারী অর্থাৎ, বিশুদ্ধ সিমুলেশন NetDevice অবজেক্টের বিপরীতে যা ফ্রেম লিখে এবং
একটি সিমুলেটেড চ্যানেল থেকে, এই FdNetDevice সিমুলেশনের বাইরে একটি ফাইলে ফ্রেমগুলিকে নির্দেশ করে
বর্ণনাকারী ফাইল বর্ণনাকারী একটি Linux TUN/TAP ডিভাইসের সাথে, একটি সকেটের সাথে যুক্ত হতে পারে,
অথবা একটি ব্যবহারকারী-স্থান প্রক্রিয়া.

একটি ফাইল বর্ণনাকারী প্রদান করা এই ডিভাইসের ব্যবহারকারীর উপর নির্ভর করে। ফাইলের ধরন
বর্ণনাকারী যে মডেল করা হচ্ছে তা নির্ধারণ করে। উদাহরণস্বরূপ, যদি ফাইল
বর্ণনাকারী হোস্ট মেশিনে একটি ওয়াইফাই কার্ডে একটি কাঁচা সকেট প্রদান করে, ডিভাইসটি হচ্ছে
মডেল করা একটি ওয়াইফাই ডিভাইস।

ডিভাইসের ধারণাগত "শীর্ষ" থেকে নীচের দিকে তাকানো, এটি অনুকরণ করা নোডের মতো দেখায়
একটি ডিভাইস যা একটি 48-বিট IEEE MAC ঠিকানা সমর্থন করে যা ব্রিজ করা যায়, সম্প্রচার সমর্থন করে এবং
IPv4 ARP বা IPv6 Neighbour Discovery ব্যবহার করে, যদিও এই বৈশিষ্ট্যগুলি একটিতে টিউন করা যেতে পারে
প্রতি-ব্যবহার-কেস ভিত্তিতে।

নকশা
FdNetDevice বাস্তবায়ন একটি রিডার অবজেক্ট ব্যবহার করে, থেকে প্রসারিত FdReader
শ্রেণীতে ns-3 src/core মডিউল, যা প্রধান থেকে একটি পৃথক থ্রেড পরিচালনা করে ns-3
এক্সিকিউশন থ্রেড, ফাইল বর্ণনাকারী থেকে ট্রাফিক পড়ার জন্য।

এর আহ্বানের উপর স্টার্টডিভাইস পদ্ধতিতে, পাঠক বস্তুটি শুরু হয় এবং শুরু হয়
পড়া থ্রেড ডিভাইস শুরু করার আগে, একটি ফাইল বর্ণনাকারীকে অবশ্যই পূর্বে সংযুক্ত থাকতে হবে
সঙ্গে FdNetDevice SetFileDescriptor আমন্ত্রণ

ফাইল বর্ণনাকারীর তৈরি এবং কনফিগারেশন অনেক সাহায্যকারীর কাছে ছেড়ে দেওয়া যেতে পারে,
নীচে আরো বিস্তারিত বর্ণনা করা হয়েছে। যখন এই কাজ করা হয়, এর আহ্বান SetFileDescriptor is
সাহায্যকারীর দায়িত্ব এবং ব্যবহারকারীর দ্বারা সরাসরি আহ্বান করা উচিত নয়।

ফাইল বর্ণনাকারী থেকে একটি ইনকামিং ফ্রেম পড়ার পরে, পাঠক ফ্রেমটি পাস করবে৷
দ্য কলব্যাক গ্রহণ করুন পদ্ধতি, যার কাজ এটি দ্বারা ফ্রেমের অভ্যর্থনা নির্ধারণ করা হয়
একটি হিসাবে ডিভাইস ns-3 সিমুলেশন ইভেন্ট। যেহেতু নতুন ফ্রেমটি পাঠক থ্রেড থেকে পাস করা হয়েছে
প্রধান ns-3 সিমুলেশন থ্রেড, থ্রেড-নিরাপত্তা সমস্যাগুলি ব্যবহার করে এড়ানো হয়
ScheduleWithContext নিয়মিত পরিবর্তে কল করুন সময়সূচি কল

ইনকামিং ডেটা রেট খুব বেশি হলে সময়সূচীকে অপ্রতিরোধ্য না করার জন্য, ক
কাউন্টারটি ফ্রেমের সংখ্যার সাথে রাখা হয় যা বর্তমানে প্রাপ্ত করার জন্য নির্ধারিত
যন্ত্র. যদি এই কাউন্টার প্রদত্ত মান পৌঁছে RxQueueSize মধ্যে বৈশিষ্ট্য
ডিভাইস, তারপর নতুন ফ্রেম নিঃশব্দে ড্রপ করা হবে.

ডিভাইস দ্বারা নতুন ফ্রেমের প্রকৃত অভ্যর্থনা যখন নির্ধারিত হয় তখন ঘটে FordwarUp
পদ্ধতি সিমুলেটর দ্বারা আহ্বান করা হয়. এই পদ্ধতিটি এমনভাবে কাজ করে যেন একটি থেকে একটি নতুন ফ্রেম এসেছে
ডিভাইসের সাথে সংযুক্ত চ্যানেল। ডিভাইসটি তারপর ফ্রেমটিকে ডিক্যাপসুলেট করে, যেকোনো স্তর সরিয়ে দেয়
2 শিরোনাম, এবং এটি নোডের উপরের নেটওয়ার্ক স্ট্যাক স্তরগুলিতে ফরোয়ার্ড করে। দ্য ফরোয়ার্ডআপ
পদ্ধতি দ্বারা সংজ্ঞায়িত ফ্রেম এনক্যাপসুলেশন টাইপ অনুসারে ফ্রেম শিরোনামগুলি সরিয়ে ফেলবে
দ্য এনক্যাপসুলেশন মোড বৈশিষ্ট্য, এবং একটি আইপি প্যাকেট পাস করে কলব্যাক রিসিভ করুন।

একটি অতিরিক্ত শিরোনাম, PI শিরোনাম, উপস্থিত হতে পারে যখন ফাইল বর্ণনাকারী a এর সাথে যুক্ত থাকে
TAP ডিভাইস যা IFF_NO_PI পতাকা সেট না করেই তৈরি করা হয়েছে৷ এই অতিরিক্ত শিরোনাম হয়
যদি সরানো হয় এনক্যাপসুলেশন মোড DIXPI মান সেট করা আছে।

বিপরীত দিকে, সিমুলেশনের ভিতরে তৈরি প্যাকেটগুলি পাঠানো হয়
ডিভাইসের মাধ্যমে, পাস করা হবে সেন্ড পদ্ধতি, যা ঘুরে আমন্ত্রণ জানাবে
থেকে পাঠানো পদ্ধতি পরবর্তী পদ্ধতিটি প্রয়োজনীয় লেয়ার 2 হেডার যোগ করবে এবং সহজভাবে
ফাইল বর্ণনাকারীতে নতুন তৈরি ফ্রেমটি লিখুন।

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

যেমন আগে ব্যাখ্যা করা হয়েছে, RxQueueSize বৈশিষ্ট্যটি হতে পারে এমন প্যাকেটের সংখ্যা সীমাবদ্ধ করে
ডিভাইস দ্বারা প্রাপ্ত করা মুলতুবি। ফাইল বর্ণনাকারী থেকে ফ্রেম পড়া যখন
মুলতুবি থাকা প্যাকেটের সংখ্যা সর্বাধিক এর মধ্যে রয়েছে নিঃশব্দে বাদ দেওয়া হবে।

ডিভাইসের mtu ডিফল্ট ইথারনেট II MTU মান। তবে সাহায্যকারীর কথা রয়েছে
নেটওয়ার্ক ইন্টারফেসের বৈশিষ্ট্যগুলি প্রতিফলিত করতে mtu-কে সঠিক মান নির্ধারণ করতে
ফাইল বর্ণনাকারীর সাথে যুক্ত। যদি কোন সাহায্যকারী ব্যবহার না করা হয়, তাহলে দায়িত্ব
ডিভাইসের জন্য সঠিক mtu মান সেট করা ব্যবহারকারীর কাছে ফিরে আসে। পড়ার সাইজ
ফাইল ডিস্ক্রিপ্টর রিডারে বাফার mtu মানতে সেট করা আছে স্টার্টডিভাইস পদ্ধতি।

FdNetDevice ক্লাস বর্তমানে তিনটি এনক্যাপসুলেশন মোড সমর্থন করে, ইথারনেট II এর জন্য DIX
ফ্রেম, 802.2 LLC/SNAP ফ্রেমের জন্য LLC, এবং ইথারনেট II ফ্রেমের জন্য DIXPI অতিরিক্ত সহ
TAP PI হেডার। এর মানে হল যে ফাইল বর্ণনাকারীকে ট্র্যাভার্সিং করা হবে বলে আশা করা হচ্ছে
ইথারনেট II সামঞ্জস্যপূর্ণ। একটি ওয়্যারলেস ইন্টারফেসে একটি FdNetDevice সংযুক্ত করা সম্ভব
যতক্ষণ পর্যন্ত ড্রাইভার সকেট API-এ ইথারনেট II ফ্রেম সরবরাহ করে। উল্লেখ্য যে সংযুক্ত করতে
অ্যাড-হক মোডে একটি ওয়্যারলেস কার্ডে একটি FdNetDevice, ডিভাইসের MAC ঠিকানা সেট করতে হবে
আসল কার্ডের MAC ঠিকানায়, অন্যথায় যে কোনো ইনকামিং ট্রাফিক একটি জাল MAC ঠিকানা হবে
ড্রাইভার দ্বারা বাতিল

আগেই উল্লেখ করা হয়েছে, fd-net-device মডিউলের সাথে তিনটি সাহায্যকারী প্রদান করা হয়েছে। প্রতিটি
স্বতন্ত্র সাহায্যকারী (ফাইল বর্ণনাকারীর প্রকার) প্ল্যাটফর্মের সীমাবদ্ধতা থাকতে পারে। এই ক্ষেত্রে,
থ্রেডিং, রিয়েল-টাইম সিমুলেশন মোড এবং TUN/TAP ডিভাইস তৈরি করার ক্ষমতা
প্রদত্ত সাহায্যকারী ব্যবহার করার পূর্বশর্ত। এই মোডগুলির জন্য সমর্থন পাওয়া যাবে
এর আউটপুট ওয়াফ কনফিগার পদক্ষেপ, যেমন:

থ্রেডিং আদিম: সক্রিয়
রিয়েল টাইম সিমুলেটর: সক্রিয়
এমুলেটেড নেট ডিভাইস: সক্রিয়
সেতুতে ট্যাপ করুন: সক্ষম

এটি পরীক্ষা করার সময় উল্লেখ করা গুরুত্বপূর্ণ FdNetDevice আমরা একটি উপরের সীমা খুঁজে পেয়েছি
1Mbps এর 60Gb ইথারনেট লিঙ্ক ব্যবহার করার সময় TCP থ্রুপুটের সীমা। এই সীমা সবচেয়ে বেশি
সম্ভবত পরীক্ষার সাথে জড়িত কম্পিউটারগুলির প্রক্রিয়াকরণ শক্তির কারণে।

ব্যবহার
এই ধরনের ডিভাইসের ব্যবহার প্যাটার্ন সাহায্যকারী সহ অন্যান্য নেট ডিভাইসের মতো
যে নোড পয়েন্টার বা নোড পাত্রে ইনস্টল. বেস ব্যবহার করার সময় FdNetDeviceHelper
ব্যবহারকারী নিজেই ফাইল বর্ণনাকারী তৈরি এবং সেট করার জন্য দায়ী।

FdNetDeviceHelper fd;
NetDeviceContainer ডিভাইস = fd.Install (nodes);

// ফাইল বর্ণনাকারী প্রজন্ম
...

device->SetFileDescriptor (fd);

হোস্ট সিস্টেমের সাথে ইন্টারঅ্যাক্ট করতে সাধারণত একটি FdNetDevice ব্যবহার করা হবে। এই ক্ষেত্রে
এটা প্রায় নিশ্চিত যে ব্যবহারকারী রিয়েল-টাইম এমুলেশন মোডে চালাতে চাইবেন, এবং করতে
চেকসাম গণনা সক্ষম করুন। সাধারণ প্রোগ্রাম বিবৃতি নিম্নরূপ:

GlobalValue::Bind ("SimulatorImplementationType", StringValue ("ns3::RealtimeSimulatorImpl"));
GlobalValue::Bind ("ChecksumEnabled", BooleanValue (true));

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

আমরা উভয়ের জন্য একই জিনিস করি পক্ষীবিশেষ এবং শীর্ষ XNUMX গ্লোবাল HR এক্সিলেন্স অ্যাওয়ার্ডের টোকা ডিভাইস উচ্চপর্যায়ের দৃষ্টিভঙ্গি এমনই
দ্য FileDescriptor তৈরি করুন পদ্ধতি একটি স্থানীয় ইন্টারপ্রসেস (ইউনিক্স) সকেট, কাঁটা, এবং তৈরি করে
ছোট সৃষ্টি প্রোগ্রাম চালায়। ছোট প্রোগ্রাম, যা suid রুট হিসাবে চলে, একটি তৈরি করে
কাঁচা সকেট এবং ইউনিক্স সকেটের উপর কাঁচা সকেট ফাইল বর্ণনাকারীকে ফেরত পাঠায় যা
একটি প্যারামিটার হিসাবে এটি পাস. কাঁচা সকেট একটি নিয়ন্ত্রণ বার্তা হিসাবে পাস করা হয় (কখনও কখনও
SCM_RIGHTS প্রকারের আনুষঙ্গিক ডেটা বলা হয়।

সাহায্যকারী
EmuFdNetDeviceHelper
EmuFdNetDeviceHelper একটি অন্তর্নিহিত শারীরিক ডিভাইসে একটি কাঁচা সকেট তৈরি করে এবং
FdNetDevice-এ সকেট বর্ণনাকারী প্রদান করে। এই অনুমতি দেয় ns-3 থেকে সিমুলেশন
হোস্টের একটি নেটওয়ার্ক ডিভাইস থেকে ফ্রেম পড়ুন এবং ফ্রেম লিখুন।

এমুলেশন হেল্পার একটি সিমুলেটেডকে স্বচ্ছভাবে সংহত করার অনুমতি দেয় ns-3 একটি মধ্যে নোড
নেটওয়ার্ক বাস্তব নোড গঠিত.

+----------------------+ +----------------------+
| হোস্ট 1 | | হোস্ট 2 |
+----------------------+ +----------------------+
| ns-3 সিমুলেশন | | |
+----------------------+ | লিনাক্স |
| ns-3 নোড | | নেটওয়ার্ক স্ট্যাক |
| +----------------+ | | +----------------+ |
| | ns-3 TCP | | | | TCP | |
| +----------------+ | | +----------------+ |
| | ns-3 IP | | | | আইপি | |
| +----------------+ | | +----------------+ |
| | FdNetDevice | | | | | |
| | 10.1.1.1 | | | | | |
| +----------------+ | | + ইথারনেট + |
| | কাঁচা সকেট | | | | | |
|---+----------------+--| | +----------------+ |
| | eth0 | | | | eth0 | |
+---------+------+------++---------+------+-------+

10.1.1.11 10.1.1.12

| |
+-------------------------------

এই সহায়ক এর কার্যকারিতা প্রতিস্থাপন করে EmuNetDevice পাওয়া ns-3 ns-3.17 এর আগে,
FdNetDevice-এর সাধারণ কাঠামোর মধ্যে এই ধরনের ডিভাইস আনার মাধ্যমে। দ্য
EmuNetDevice এই নতুন সাহায্যকারীর পক্ষে বঞ্চিত হয়েছে।

ডিভাইসটিকে আলাদা সিমুলেশন নেটওয়ার্ক ট্রাফিকের জন্য MAC স্পুফিং করার জন্য কনফিগার করা হয়েছে
অন্যান্য নেটওয়ার্ক ট্র্যাফিক থেকে যা হোস্টে এবং থেকে প্রবাহিত হতে পারে।

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

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

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

আহ্বান করার আগে ইনস্টল করুন পদ্ধতি, সঠিক ডিভাইসের নাম কনফিগার করা আবশ্যক
সাহায্যকারী ব্যবহার করে সেটডিভাইসনাম পদ্ধতি কোনটি সনাক্ত করতে ডিভাইসের নাম প্রয়োজন
কাঁচা সকেট খুলতে শারীরিক ডিভাইস ব্যবহার করা উচিত।

EmuFdNetDeviceHelper ইমু;
emu.SetDeviceName (deviceName);
NetDeviceContainer ডিভাইস = emu.Install (node);
Ptr device = devices.Get (0);
device->SetAttribute ("Address", Mac48AddressValue (Mac48Address::Alocate ()));

TapFdNetDeviceHelper
একটি ট্যাপ ডিভাইস হল একটি বিশেষ ধরনের লিনাক্স ডিভাইস যার জন্য ডিভাইসের এক প্রান্ত দেখা যায়
একটি ভার্চুয়াল নেট_ডিভাইস হিসাবে কার্নেল এবং অন্য প্রান্তটি একটি ফাইল বর্ণনাকারী হিসাবে সরবরাহ করা হয়েছে
ব্যবহারকারীর স্থান। এই ফাইল বর্ণনাকারী FdNetDevice পাস করা যেতে পারে. প্যাকেট ফরোয়ার্ড
কার্নেলের TAP ডিভাইসটি FdNetDevice-এ প্রদর্শিত হবে ns-3.

ব্যবহারকারীদের লক্ষ্য করা উচিত যে TAP ডিভাইসের এই ব্যবহারটি প্রদত্ত এর থেকে আলাদা
ট্যাপব্রিজ নেটডিভাইস পাওয়া গেছে src/ট্যাপ-ব্রিজ. এই সাহায্যকারীর মডেলটি নিম্নরূপ:

+--------------------------------------
| হোস্ট |
+--------------------------------------
| ns-3 সিমুলেশন | |
+-------------------------+ |
| ns-3 নোড | |
| +----------------+ | |
| | ns-3 TCP | | |
| +----------------+ | |
| | ns-3 IP | | |
| +----------------+ | |
| | FdNetDevice | | |
|---+----------------+--+ +------+ |
| | ট্যাপ | | eth0 | |
| +------+ +------+ |
| 192.168.0.1 | |
+--------------------------------------------|------+
|
|
------------ (ইন্টারনেট) -----

উপরে, কনফিগারেশনের প্রয়োজন যে হোস্ট ট্র্যাফিক ফরোয়ার্ড করতে সক্ষম হবে
ইন্টারনেটে সিমুলেশন দ্বারা উত্পন্ন।

ট্যাপব্রিজে মডেলটি (অন্য মডিউলে) নিম্নরূপ:

+---------+
| লিনাক্স |
| হোস্ট | +---------+
| ------ | | ভূত |
| অ্যাপস | | নোড |
| ------ | | -------- |
| স্ট্যাক | | আইপি | +---------+
| ------ | | স্ট্যাক | | নোড |
| ট্যাপ | |==========| | -------- |
| ডিভাইস | <------ IPC ------> | টোকা | | আইপি |
+---------+ | সেতু | | স্ট্যাক |
| -------- | | -------- |
| ns-3 | | ns-3 |
| নেট | | নেট |
| ডিভাইস | | ডিভাইস |
+------------+ +---------+
|| ||
+----------------------------
| ns-3 চ্যানেল |
+----------------------------

উপরে, প্যাকেট পরিবর্তে ট্রাভার্স ns-3 NetDevices এবং চ্যানেল।

এই উদাহরণের জন্য ব্যবহার প্যাটার্ন হল যে ব্যবহারকারী MAC ঠিকানা সেট করে এবং হয় (বা
উভয়) ডিভাইসে IPv4 এবং IPv6 ঠিকানা এবং মুখোশ এবং প্রয়োজনে PI হেডার।
উদাহরণ স্বরূপ:

TapFdNetDeviceHelper সাহায্যকারী;
helper.SetDeviceName (deviceName);
helper.SetModePi (modePi);
helper.SetTapIpv4Address (tapIp);
helper.SetTapIpv4Mask (ট্যাপমাস্ক);
...
helper.Install (নোড);

PlanetLabFdNetDeviceHelper
প্ল্যানেটল্যাব হল একটি বিশ্বব্যাপী বিতরণ করা নেটওয়ার্ক টেস্টবেড যা নোডগুলির সাথে সংযুক্ত
ইন্টারনেট প্ল্যানেটল্যাব নোড ব্যবহার করে ns-3 সিমুলেশন চালানো হচ্ছে
PlanetLabFdNetDeviceHelper সরাসরি ns-3 দ্বারা উত্পন্ন সিমুলেটেড ট্র্যাফিক পাঠাতে অনুমতি দেয়
ইন্টারনেট. এই সেটআপটি ns-3 ইন্টারনেট প্রোটোকল বা অন্যান্য ভবিষ্যত যাচাই করতে কার্যকর হতে পারে
ns-3 এ প্রয়োগ করা প্রোটোকল।

প্ল্যানেটল্যাব নোড ব্যবহার করে পরীক্ষা চালানোর জন্য একটি প্ল্যানেটল্যাব অ্যাকাউন্ট থাকা প্রয়োজন। কেবল
PlanetLab অংশীদার প্রতিষ্ঠানের সদস্যরা এই ধরনের অ্যাকাউন্ট পেতে পারেন (আরো তথ্যের জন্য
দর্শন http://www.planet-lab.org/ or http://www.planet-lab.eu ) একবার একাউন্ট হয়
প্রাপ্ত, একটি প্ল্যানেটল্যাব ফালি পরীক্ষা চালানোর জন্য অনুরোধ করা আবশ্যক. একটি ফালি
প্ল্যানেটল্যাব ব্যবহারকারীদের একটি গোষ্ঠীর সাথে সম্পর্কিত একটি পরীক্ষা ইউনিটের প্রতিনিধিত্ব করে এবং যুক্ত হতে পারে
বিভিন্ন প্ল্যানেটল্যাব নোডের ভার্চুয়াল মেশিনে। স্লাইস যোগ করেও কাস্টমাইজ করা যায়
এটিতে কনফিগারেশন ট্যাগ (এটি PlanetLab অ্যাডমিনিস্ট্রেটরদের দ্বারা করা হয়)।

PlanetLabFdNetDeviceHelper নির্দিষ্ট ব্যবহার করে PlanetLab নোডগুলিতে TAP ডিভাইস তৈরি করে
প্ল্যানেটল্যাব মেকানিজম (অর্থাৎ vsys সিস্টেম), এবং TAP ডিভাইসটিকে a এর সাথে সংযুক্ত করে
NS-3-এ FdNetDevice। এই সাহায্যকারী দ্বারা উপলব্ধ কার্যকারিতা যে অনুরূপ
FdTapNetDeviceHelper দ্বারা প্রদত্ত, ব্যতীত যেগুলি তৈরি করার অন্তর্নিহিত প্রক্রিয়াগুলি
ট্যাপ ডিভাইস ভিন্ন।

+--------------------------------------
| প্ল্যানেটল্যাব হোস্ট |
+--------------------------------------
| ns-3 সিমুলেশন | |
+-------------------------+ |
| ns-3 নোড | |
| +----------------+ | |
| | ns-3 TCP | | |
| +----------------+ | |
| | ns-3 IP | | |
| +----------------+ | |
| | FdNetDevice | | |
|---+----------------+--+ +------+ |
| | ট্যাপ | | eth0 | |
| +------+ +------+ |
| 192.168.0.1 | |
+--------------------------------------------|------+
|
|
------------ (ইন্টারনেট) -----

TAP ডিভাইস, অ্যাকাউন্ট হোল্ডারদের ব্যক্তিগত IPv4 ঠিকানা বরাদ্দ করতে সক্ষম হওয়ার জন্য
অনুরোধ করতে হবে vsys_vnet প্ল্যানেটল্যাব অ্যাডমিনিস্ট্রেটরদের দ্বারা তাদের স্লাইসে ট্যাগ যোগ করা হবে।
vsys_vnet ট্যাগটি প্রাইভেট নেটওয়ার্ক সেগমেন্টের সাথে যুক্ত এবং শুধুমাত্র এটির ঠিকানা
সেগমেন্ট পরীক্ষায় ব্যবহার করা যেতে পারে।

এই হেল্পার দিয়ে একটি TAP ডিভাইস তৈরি করতে ব্যবহৃত সিনট্যাক্সটি এর জন্য ব্যবহৃত সিনট্যাক্সের মতো
পূর্বে বর্ণিত সাহায্যকারী:

PlanetLabFdNetDeviceHelper সাহায্যকারী;
helper.SetTapIpAddress (tapIp);
helper.SetTapMask (ট্যাপমাস্ক);
...
helper.Install (নোড);

প্ল্যানেটল্যাব নোডগুলির একটি ফেডোরা ভিত্তিক ডিস্ট্রিবিউশন রয়েছে, তাই ns-3 অনুসরণ করে ইনস্টল করা যেতে পারে
ns-3 লিনাক্স ইনস্টলেশনের জন্য নির্দেশাবলী।

আরোপ করা
সার্জারির FdNetDevice গুণাবলী একটি সংখ্যা প্রদান করে:

· ঠিকানা: ডিভাইসের MAC ঠিকানা

· শুরু: ডিভাইস থ্রেড স্পিন আপ সিমুলেশন শুরু সময়

· থামুন: ডিভাইস থ্রেড থামাতে সিমুলেশন শুরুর সময়

· এনক্যাপসুলেশন মোড: লিংক-লেয়ার এনক্যাপসুলেশন বিন্যাস

·

RxQueueSize: সার্জারির বাফার আয়তন of দ্য পড়া বেণী on দ্য ফাইল বর্ণনাকারী
থ্রেড (1000 প্যাকেটের ডিফল্ট)

শুরু এবং থামুন সাধারণত নির্দিষ্ট করার প্রয়োজন হয় না যদি না ব্যবহারকারী সীমাবদ্ধ করতে চায়
যে সময়ে এই ডিভাইসটি সক্রিয় থাকে। ঠিকানা অনন্য কিছু সেট করা প্রয়োজন
MAC ঠিকানা যদি সিমুলেশন অন্য বাস্তব ডিভাইসের সাথে কোনোভাবে ইন্টারঅ্যাক্ট করবে
বাস্তব MAC ঠিকানা। সাধারণ কোড:

device->SetAttribute ("Address", Mac48AddressValue (Mac48Address::Alocate ()));

আউটপুট
Ascii এবং PCAP ট্রেসিং অন্যটির মতোই প্রদান করা হয়েছে ns-3 NetDevice প্রকার, মাধ্যমে
সাহায্যকারী, যেমন (যেমন):

:: EmuFdNetDeviceHelper ইমু; NetDeviceContainer ডিভাইস = emu.Install (node);
emu.EnablePcap ("ইমু-পিং", ডিভাইস, সত্য);

ম্যাক-লেভেলের নেটডিভাইস ট্রেস সোর্সের স্ট্যান্ডার্ড সেট দেওয়া আছে।

· ম্যাক্সটিএক্স: ট্রেস উৎস যখন ট্রিগার ns-3 পাঠানোর জন্য একটি নতুন ফ্রেম সহ ডিভাইস প্রদান করে

· MaxTxDrop: ফাইল বর্ণনাকারীতে লিখতে ব্যর্থ হলে উৎস ট্রেস করুন

· MaxPromiscRx: যখনই কোনো বৈধ ম্যাক ফ্রেম প্রাপ্ত হয়

· ম্যাক্সআরএক্স: যখনই এই ডিভাইসের জন্য একটি বৈধ Mac ফ্রেম প্রাপ্ত হয়৷

· স্নিফার: নন-প্রোমিস্কুয়াস প্যাকেট স্নিফার

· PromiscSniffer: প্রমিসকুয়াস প্যাকেট স্নিফার (tcpdump-এর মতো ট্রেসের জন্য)

উদাহরণ
বেশ কয়েকটি উদাহরণ প্রদান করা হয়:

· dummy-network.cc: এই সাধারণ উদাহরণটি দুটি নোড তৈরি করে এবং একটি দিয়ে তাদের আন্তঃসংযোগ করে
সকেটপেয়ার থেকে FdNetDevice-এ ফাইল বর্ণনাকারী পাস করে ইউনিক্স পাইপ
সংশ্লিষ্ট নোডের বস্তু।

· realtime-dummy-network.cc: dummy-network.cc এর মতই কিন্তু রিয়েল টাইম সিমুলেটর ব্যবহার করে
ডিফল্টের পরিবর্তে বাস্তবায়ন।

· fd2fd-onoff.cc: এই উদাহরণের উদ্দেশ্য হল FdNetDevice-এর থ্রুপুট পরিমাপ করা৷
একটি বিশুদ্ধ সিমুলেশন। এই উদ্দেশ্যে দুটি FdNetDevices, বিভিন্ন নোডের সাথে সংযুক্ত কিন্তু ইন
একই সিমুলেশন, একটি সকেট জোড়া ব্যবহার করে সংযুক্ত করা হয়। TCP ট্রাফিক একটি এ পাঠানো হয়
saturating ডেটা হার।

· fd-emu-onoff.cc: এই উদাহরণটি FdNetDevice-এর থ্রুপুট পরিমাপ করার লক্ষ্যে
EmuFdNetDeviceHelper ব্যবহার করার সময় একটি বাস্তব ডিভাইসে সিমুলেটেড ডিভাইস সংযুক্ত করতে
হোস্ট মেশিন। এটি টিসিপি ট্র্যাফিকের সাথে চ্যানেলটিকে স্যাচুরেট করে অর্জন করা হয়।

· fd-emu-ping.cc: এই উদাহরণটি একটি ICMP ট্রাফিক পাঠাতে EmuFdNetDeviceHelper ব্যবহার করে
বাস্তব চ্যানেল।

· fd-emu-udp-echo.cc: এই উদাহরণটি UDP ট্রাফিক পাঠাতে EmuFdNetDeviceHelper ব্যবহার করে
একটি বাস্তব চ্যানেল।

· fd-planetlab-ping.cc: এই উদাহরণটি দেখায় কিভাবে ICMP পাঠাতে একটি পরীক্ষা সেট আপ করতে হয়
প্ল্যানেটল্যাব নোড থেকে ইন্টারনেটে ট্রাফিক।

· fd-tap-ping.cc: এই উদাহরণটি ICMP ট্রাফিক পাঠাতে TapFdNetDeviceHelper ব্যবহার করে
বাস্তব চ্যানেল।

টোকা নেটডিভাইস
ট্যাপ নেটডিভাইস একটি হোস্ট সিস্টেম বা ভার্চুয়াল মেশিনের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দিতে ব্যবহার করা যেতে পারে
একটি সিমুলেশন

ট্যাপব্রিজ মডেল সংক্ষিপ্ত বিবরণ
ট্যাপ ব্রিজ ডিজাইন করা হয়েছে "বাস্তব" ইন্টারনেট হোস্ট (অথবা আরও সঠিকভাবে, হোস্ট) একীভূত করার জন্য
যা Tun/Tap ডিভাইসগুলিকে ns-3 সিমুলেশনে সমর্থন করে। লক্ষ্য এটি একটি প্রদর্শিত করতে হয়
"real" হোস্ট নোড যেটিতে স্থানীয় ডিভাইস হিসাবে একটি ns-3 নেট ডিভাইস রয়েছে। ধারণা a
"রিয়েল হোস্ট" কিছুটা পিচ্ছিল কারণ "বাস্তব হোস্ট" আসলে ব্যবহার করে ভার্চুয়ালাইজ করা যেতে পারে
সহজলভ্য প্রযুক্তি যেমন VMware, VirtualBox বা OpenVZ।

যেহেতু আমরা মূলত, একটি ns-3 নেট ডিভাইসের ইনপুট এবং আউটপুট সংযোগ করছি
লিনাক্স ট্যাপ নেট ডিভাইসের ইনপুট এবং আউটপুট, আমরা এই ব্যবস্থাটিকে ট্যাপ ব্রিজ বলি।

ব্যবহারকারীদের জন্য উপলব্ধ এই ডিভাইসের তিনটি মৌলিক অপারেটিং মোড আছে। মৌলিক
কার্যকারিতা মূলত অভিন্ন, কিন্তু মোডগুলি সম্পর্কে বিশদ বিবরণে ভিন্ন
কিভাবে বিন্যাস তৈরি এবং কনফিগার করা হয়; এবং কি ডিভাইস কোন দিকে বাস করতে পারে
সেতু.

এই তিনটি মোডকে আমরা ConfigureLocal, UseLocal এবং UseBridge মোড বলি। প্রথম
উট কেস মোড শনাক্তকারীতে "শব্দ" নির্দেশ করে যে তৈরি করার দায়িত্ব কার
এবং ট্যাপগুলি কনফিগার করা হচ্ছে। উদাহরণস্বরূপ, ConfigureLocal মোডে "কনফিগার" নির্দেশ করে
যে ট্যাপব্রিজটিই ট্যাপ কনফিগার করার জন্য দায়ী। UseLocal এ
মোড এবং ইউজব্রিজ মোড, "ব্যবহার করুন" উপসর্গটি নির্দেশ করে যে ট্যাপব্রিজকে "ব্যবহার" করতে বলা হয়েছে
একটি বিদ্যমান কনফিগারেশন।

অন্য কথায়, ConfigureLocal মোডে, TapBridge তৈরির দায়িত্ব রয়েছে
এবং TAP ডিভাইস কনফিগার করা হচ্ছে। UseBridge বা UseLocal মোডে, ব্যবহারকারী একটি প্রদান করে
কনফিগারেশন এবং ট্যাপব্রিজ সেই কনফিগারেশনের সাথে খাপ খায়।

ট্যাপব্রিজ লোকাল কনফিগার করুন মোড
ConfigureLocal মোডে, ট্যাপ ডিভাইসের কনফিগারেশন হল ns-3
কনফিগারেশন-কেন্দ্রিক। কনফিগারেশন তথ্য ns-3-এ একটি ডিভাইস থেকে নেওয়া হয়
সিমুলেশন এবং ns-3 বৈশিষ্ট্যের সাথে মেলে একটি ট্যাপ ডিভাইস স্বয়ংক্রিয়ভাবে তৈরি হয়। ভিতরে
এই ক্ষেত্রে, একটি লিনাক্স কম্পিউটারকে এমনভাবে দেখানো হয় যেন এটি সরাসরি একটি এর সাথে সংযুক্ত ছিল
সিমুলেটেড ns-3 নেটওয়ার্ক।

এটি নীচে চিত্রিত করা হয়েছে:

+---------+
| লিনাক্স |
| হোস্ট | +---------+
| ------ | | ভূত |
| অ্যাপস | | নোড |
| ------ | | -------- |
| স্ট্যাক | | আইপি | +---------+
| ------ | | স্ট্যাক | | নোড |
| ট্যাপ | |==========| | -------- |
| ডিভাইস | <------ IPC ------> | টোকা | | আইপি |
+---------+ | সেতু | | স্ট্যাক |
| -------- | | -------- |
| ns-3 | | ns-3 |
| নেট | | নেট |
| ডিভাইস | | ডিভাইস |
+------------+ +---------+
|| ||
+----------------------------
| ns-3 চ্যানেল |
+----------------------------

এই ক্ষেত্রে, "ঘোস্ট নোড"-এ "NS-3 নেট ডিভাইস" এমনভাবে প্রদর্শিত হবে যেন এটি আসলে ছিল
লিনাক্স হোস্টে ট্যাপ ডিভাইস প্রতিস্থাপন করা হচ্ছে। ns-3 সিমুলেশন TAP ডিভাইসটি চালু করে
অন্তর্নিহিত Linux OS এবং TAP ডিভাইসের IP এবং MAC ঠিকানাগুলিকে মেলে কনফিগার করে
সিমুলেটেড ns-3 নেট ডিভাইসে নির্ধারিত মান। উপরে দেখানো "IPC" লিঙ্কটি হল
অন্তর্নিহিত OS-এ নেটওয়ার্ক ট্যাপ মেকানিজম। পুরো ব্যবস্থা একটি প্রচলিত হিসাবে কাজ করে
সেতু; কিন্তু একই শেয়ার করা MAC এবং IP আছে এমন ডিভাইসগুলির মধ্যে একটি সেতু
ঠিকানা।

এখানে, ব্যবহারকারীকে নির্দিষ্ট কোনো কনফিগারেশন তথ্য প্রদান করার প্রয়োজন নেই
টোকা একটি ট্যাপ ডিভাইস তৈরি এবং কনফিগার করা হবে ns-3 এর ডিফল্ট অনুযায়ী, এবং
ট্যাপ ডিভাইসটির নাম অন্তর্নিহিত অপারেটিং সিস্টেম অনুসারে নির্ধারিত হবে
এর ডিফল্ট

ব্যবহারকারীর যদি তৈরি করা ট্যাপ ডিভাইস অ্যাক্সেস করার প্রয়োজন হয়, তাহলে তিনি ঐচ্ছিকভাবে করতে পারেন
একটি "DeviceName" বৈশিষ্ট্য প্রদান করুন। এই ক্ষেত্রে, তৈরি OS ট্যাপ ডিভাইসের নাম দেওয়া হবে
সেই অনুযায়ী।

ConfigureLocal মোড হল ট্যাপ ব্রিজের ডিফল্ট অপারেটিং মোড।

ট্যাপব্রিজ স্থানীয় ব্যবহার করুন মোড
UseLocal মোডটি ConfigureLocal মোডের মতোই। উল্লেখযোগ্য পার্থক্য
মোড নাম থেকে বোঝা যায়, ট্যাপব্রিজ একটি বিদ্যমান ট্যাপ ডিভাইস "ব্যবহার" করতে যাচ্ছে
ব্যবহারকারী দ্বারা পূর্বে তৈরি এবং কনফিগার করা হয়েছে। এই মোড বিশেষভাবে দরকারী যখন a
ভার্চুয়ালাইজেশন স্কিম স্বয়ংক্রিয়ভাবে ট্যাপ ডিভাইস তৈরি করে এবং প্রদান করতে ns-3 ব্যবহার করা হয়
এই ডিভাইসগুলির জন্য সিমুলেটেড নেটওয়ার্ক।

+---------+
| লিনাক্স |
| হোস্ট | +---------+
| ------ | | ভূত |
| অ্যাপস | | নোড |
| ------ | | -------- |
| স্ট্যাক | | আইপি | +---------+
| ------ | | স্ট্যাক | | নোড |
| ট্যাপ | |==========| | -------- |
| ডিভাইস | <------ IPC ------> | টোকা | | আইপি |
| ম্যাক এক্স | | সেতু | | স্ট্যাক |
+---------+ | -------- | | -------- |
| ns-3 | | ns-3 |
| নেট | | নেট |
| ডিভাইস | | ডিভাইস |
| MAC Y | | MAC Z |
+------------+ +---------+
|| ||
+----------------------------
| ns-3 চ্যানেল |
+----------------------------

এই ক্ষেত্রে, "ট্যাপ ডিভাইস" (MAC X) এর পূর্ব-কনফিগার করা MAC ঠিকানা হবে না
উপরের চিত্রে দেখানো ব্রিজড "NS-3 নেট ডিভাইস" (MAC Y) এর মতোই। ভিতরে
NS-3 নেট ডিভাইসগুলির সাথে ব্রিজ করার জন্য যা SendFrom() সমর্থন করে না (বিশেষ করে বেতার
STA নোড) আমরা একটি প্রয়োজনীয়তা আরোপ করি যে শুধুমাত্র একটি লিনাক্স ডিভাইস (একটি অনন্য MAC ঠিকানা সহ
-- এখানে X) ট্রাফিক তৈরি করে যা IPC লিঙ্ক জুড়ে প্রবাহিত হয়। এর কারণ হল MAC
IPC লিঙ্ক জুড়ে ট্র্যাফিকের ঠিকানাগুলি "স্পুফ" করা হবে বা এটিকে দেখাতে পরিবর্তন করা হবে
লিনাক্স এবং ns-3 যে তাদের একই ঠিকানা আছে। অর্থাৎ লিনাক্স থেকে ট্রাফিক চলমান
ns-3 ঘোস্ট নোডে হোস্ট এর MAC ঠিকানা X থেকে Y এবং ট্রাফিক থেকে পরিবর্তিত হবে
লিনাক্স হোস্টের ঘোস্ট নোডের MAC ঠিকানা Y থেকে X তে পরিবর্তিত হবে
ডিভাইসগুলির মধ্যে একের সাথে এক চিঠিপত্র রয়েছে, শুধুমাত্র একটি MAC উৎস থাকতে পারে
লিনাক্সের দিক থেকে প্রবাহিত। এর মানে হল যে লিনাক্স একাধিক নেট ডিভাইসের সাথে ব্রিজ করে
যোগ করা হয়েছে UseLocal মোডের সাথে বেমানান।

UseLocal মোডে, ব্যবহারকারী একটি ট্যাপ ডিভাইস তৈরি এবং কনফিগার করবে বলে আশা করা হচ্ছে
ns-3 সিমুলেশনের সুযোগের বাইরে এমন কিছু ব্যবহার করে:

$ sudo tunctl -t tap0
$ sudo ifconfig tap0 hw ইথার 08:00:2e:00:00:01
$ sudo ifconfig ট্যাপ0 10.1.1.1 নেটমাস্ক 255.255.255.0 আপ

ট্যাপব্রিজকে কী ঘটছে তা জানাতে, ব্যবহারকারী সরাসরি সেট করবেন
TapBridge বা TapBridgeHelper এর মাধ্যমে, "DeviceName" বৈশিষ্ট্য। ক্ষেত্রে
উপরের কনফিগারেশনে, "DeviceName" বৈশিষ্ট্যটি "tap0" এবং "Mode" এ সেট করা হবে
বৈশিষ্ট্য "UseLocal" এ সেট করা হবে।

এই মোডের জন্য একটি বিশেষ ব্যবহারের ক্ষেত্রে OpenVZ পরিবেশে। সেখানে এটা সম্ভব
"হার্ডওয়্যার নোড" এ একটি ট্যাপ ডিভাইস তৈরি করতে এবং এটিকে একটি ভার্চুয়াল প্রাইভেট সার্ভারে নিয়ে যেতে৷
যদি ট্যাপব্রিজ একটি বিদ্যমান ট্যাপ ডিভাইস ব্যবহার করতে সক্ষম হয় তবে এটি এড়ানো সম্ভব
সেই পরিবেশে একটি ওএস ব্রিজের ওভারহেড।

ট্যাপব্রিজ ইউজ ব্রিজ মোড
যারা লিনাক্স নেটওয়ার্কিং এর সাথে পরিচিত তাদের জন্য সবচেয়ে সহজ মোড হল UseBridge মোড। আবার,
"ব্যবহার করুন" উপসর্গটি নির্দেশ করে যে TapBridge একটি বিদ্যমান কনফিগারেশন ব্যবহার করতে যাচ্ছে।
এই ক্ষেত্রে, TapBridge যৌক্তিকভাবে একটি লিনাক্স ব্রিজকে ns-3 এ প্রসারিত করতে চলেছে।

এটি নীচে চিত্রিত করা হয়েছে:

+---------+
| লিনাক্স | +---------+
| ------- | | ভূত |
| অ্যাপস | | নোড |
| ------- | | -------- |
| স্ট্যাক | | আইপি | +---------+
| ------- | +---------+ | স্ট্যাক | | নোড |
| ভার্চুয়াল | | ট্যাপ | |==========| | -------- |
| ডিভাইস | | ডিভাইস | <---- IPC -----> | টোকা | | আইপি |
+---------+ +---------+ | সেতু | | স্ট্যাক |
|| || | -------- | | -------- |
+----------------------+ | ns-3 | | ns-3 |
| OS (brctl) সেতু | | নেট | | নেট |
+----------------------+ | ডিভাইস | | ডিভাইস |
+------------+ +---------+
|| ||
+----------------------------
| ns-3 চ্যানেল |
+----------------------------

এই ক্ষেত্রে, লিনাক্স অ্যাপ্লিকেশন, প্রোটোকল ইত্যাদি চালিত একটি কম্পিউটারের সাথে সংযুক্ত থাকে
ns-3 এমনভাবে সিমুলেটেড নেটওয়ার্ক যাতে তা লিনাক্স হোস্টের কাছে TAP দেখায়
ডিভাইস লিনাক্স সেতুতে অংশগ্রহণকারী একটি বাস্তব নেটওয়ার্ক ডিভাইস।

ns-3 সিমুলেশনে, প্রতিটি TAP ডিভাইসের সাথে মেলে একটি ট্যাপব্রিজ তৈরি করা হয়েছে। নামটি হলো
ট্যাপ ডিভাইস "ডিভাইসনেম" বৈশিষ্ট্য ব্যবহার করে ট্যাপ ব্রিজে বরাদ্দ করা হয়েছে। ট্যাপব্রিজ
তারপর যৌক্তিকভাবে NS-3 নেট ডিভাইসকে ঘিরে OS ব্রিজকে প্রসারিত করে।

যেহেতু এই মোড যৌক্তিকভাবে একটি OS ব্রিজকে প্রসারিত করে, সেখানে অনেকগুলি লিনাক্স নেট ডিভাইস থাকতে পারে
সেতুর নন-এনএস-৩ পাশ। তাই যেকোনো সেতুতে নেট ডিভাইসের মতো ns-3 নেট
ডিভাইসটিকে অবশ্যই অনেক উত্স ঠিকানাগুলির সাথে মোকাবিলা করতে হবে৷ সুতরাং, ns-3 ডিভাইস আবশ্যক
সমর্থন SendFrom() (NetDevice::SupportsSendFrom() অবশ্যই সত্য হতে হবে) হতে
UseBridge মোডে ব্যবহারের জন্য কনফিগার করা হয়েছে।

এটা প্রত্যাশিত যে ব্যবহারকারী ব্রিজ কনফিগার করতে নিম্নলিখিত মত কিছু করবে
এবং ns-3 এর বাইরে সম্পূর্ণভাবে আলতো চাপুন:

$ sudo brctl addbr mybridge
$ sudo tunctl -t mytap
$ sudo ifconfig mytap hw ether 00:00:00:00:00:01
$ sudo ifconfig mytap 0.0.0.0 আপ
$ sudo brctl addif mybridge mytap
$ sudo brctl addif mybridge...
$ sudo ifconfig mybridge 10.1.1.1 নেটমাস্ক 255.255.255.0 আপ

ট্যাপব্রিজকে কী ঘটছে তা জানাতে, ব্যবহারকারী সরাসরি সেট করবেন
TapBridge বা TapBridgeHelper এর মাধ্যমে, "DeviceName" বৈশিষ্ট্য। ক্ষেত্রে
উপরের কনফিগারেশন, "DeviceName" বৈশিষ্ট্যটি "mytap" এবং "Mode" এ সেট করা হবে
বৈশিষ্ট্য "UseBridge" এ সেট করা হবে।

এই মোডটি ভার্চুয়ালাইজেশনের ক্ষেত্রে বিশেষভাবে কার্যকর যেখানে কনফিগারেশন
ভার্চুয়াল হোস্ট অন্য সিস্টেম দ্বারা নির্দেশিত হতে পারে এবং ns-3 অনুসারে পরিবর্তনযোগ্য নয়।
উদাহরণস্বরূপ, একটি নির্দিষ্ট VM স্কিম ভার্চুয়াল "vethx" বা "vmnetx" ডিভাইস তৈরি করতে পারে যা
ভার্চুয়াল হোস্ট থেকে স্থানীয় প্রদর্শিত হবে. এই ধরনের সিস্টেমের সাথে সংযোগ করার জন্য, একজনের প্রয়োজন হবে
হোস্ট সিস্টেমে ম্যানুয়ালি TAP ডিভাইস তৈরি করুন এবং এই TAP ডিভাইসগুলিকে ব্রিগেড করুন
বিদ্যমান (VM) ভার্চুয়াল ডিভাইস। এক্ষেত্রে ট্যাপ ব্রিজের কাজ হল প্রসারিত করা
একটি ns-3 নেট ডিভাইসে যোগদানের জন্য সেতু।

ট্যাপব্রিজ লোকাল কনফিগার করুন অপারেশন
ConfigureLocal মোডে, TapBridge এবং সেইজন্য এর সংশ্লিষ্ট ns-3 নেট ডিভাইস উপস্থিত হয়
যে কোনো নির্বিচারে "eth0" বা "ath0" এর মতোই একটি নেটওয়ার্ক ডিভাইস হিসাবে লিনাক্স হোস্ট কম্পিউটারে
প্রদর্শিত হতে পারে। TAP ডিভাইসের নির্মাণ এবং কনফিগারেশন ns-3 দ্বারা সম্পন্ন হয়
সিমুলেশন এবং ব্যবহারকারীর দ্বারা কোন ম্যানুয়াল কনফিগারেশন প্রয়োজন হয় না। আইপি ঠিকানা, MAC
তৈরি TAP ডিভাইসের ঠিকানা, গেটওয়ে ইত্যাদি সিমুলেশন থেকে বের করা হয়
নিজেই ns-3 ডিভাইসের কনফিগারেশন এবং TapBridge বৈশিষ্ট্যগুলি অনুসন্ধান করে।

যেহেতু ম্যাক অ্যাড্রেসগুলি লিনাক্সের পাশে এবং ns-3 পাশে অভিন্ন, তাই আমরা ব্যবহার করতে পারি
ns-3 ডিভাইসে Send() যা সমস্ত ns-3 নেট ডিভাইসে উপলব্ধ। যেহেতু MAC
ঠিকানাগুলি অভিন্ন সেখানে প্রমিসকুস কলব্যাক হুক করার কোন প্রয়োজন নেই৷
পাশ গ্রহণ. তাই নেট ডিভাইসের ধরনের কোন বিধিনিষেধ নেই
ConfigureLocal মোডে ব্যবহারযোগ্য।

ট্যাপব্রিজ একটি চ্যানেল-হীন নেট ডিভাইস হিসাবে একটি ns-3 সিমুলেশনে প্রদর্শিত হয়। এই যন্ত্রটি
এটির সাথে অবশ্যই একটি IP ঠিকানা যুক্ত থাকবে না, তবে ব্রিজড (ns-3) নেট ডিভাইস অবশ্যই থাকবে
একটি আইপি ঠিকানা আছে। সচেতন থাকুন যে এটি একটি ns-3 BridgeNetDevice (বা a
সাধারণভাবে প্রচলিত সেতু) যা দাবি করে যে এর ব্রিজ পোর্টের আইপি ঠিকানা নেই,
কিন্তু ব্রিজ ডিভাইসটিকে নিজেই একটি IP ঠিকানা থাকতে দেয়।

হোস্ট কম্পিউটার একটি সিমুলেশনে একটি "ভূত" নোড হিসাবে উপস্থিত হবে যাতে একটি থাকে৷
ব্রিজ করা হচ্ছে এমন প্রতিটি NetDevice-এর জন্য TapBridge। একটি সিমুলেশনের দৃষ্টিকোণ থেকে,
একটি ভূত নোড এবং অন্য কোনো নোড মধ্যে পার্থক্য শুধুমাত্র উপস্থিতি হবে
ট্যাপব্রিজ ডিভাইস। তবে নোট করুন, ট্যাপব্রিজের উপস্থিতি প্রভাবিত করে
ঘোস্ট নোডের আইপি স্ট্যাকের সাথে নেট ডিভাইসের সংযোগ।

ঠিকানা তথ্য এবং ns-3 ডিভাইসের কনফিগারেশন কোনোভাবেই পরিবর্তন করা হয় না যদি a
ট্যাপব্রিজ উপস্থিত। একটি ট্যাপব্রিজ ns-3 থেকে ঠিকানার তথ্য সংগ্রহ করবে
নেট ডিভাইস যার সাথে এটি সংযুক্ত (এর "ব্রিজড" নেট ডিভাইস) এবং সেই তথ্য ব্যবহার করে
বাস্তব হোস্টে ট্যাপ ডিভাইস তৈরি এবং কনফিগার করুন।

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

ট্যাপ ব্রিজ একটি লিনাক্স হোস্ট এবং একটি ns-3 এর মধ্যে কোথাও একটি ধূসর জগতে বাস করে
সেতু ডিভাইস। লিনাক্সের দৃষ্টিকোণ থেকে, এই কোডটি ব্যবহারকারী মোড হ্যান্ডলার হিসাবে উপস্থিত হয়
একটি TAP নেট ডিভাইস। ConfigureLocal মোডে, এই ট্যাপ ডিভাইসটি স্বয়ংক্রিয়ভাবে তৈরি হয়
ns-3 সিমুলেশন। লিনাক্স হোস্ট লিখলে এগুলোর একটি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়
/dev/tap ডিভাইসে, লেখাটি ট্যাপব্রিজে পুনঃনির্দেশিত হয় যা ns-3 বিশ্বে থাকে;
এবং এই দৃষ্টিকোণ থেকে, লিনাক্সে লেখা প্যাকেটটি ট্যাপে পড়া একটি প্যাকেট হয়ে যায়
সেতু। অন্য কথায়, একটি লিনাক্স প্রক্রিয়া একটি ট্যাপ ডিভাইস এবং এই প্যাকেটে একটি প্যাকেট লেখে
নেটওয়ার্ক ট্যাপ মেকানিজম দ্বারা এনএস-3 প্রক্রিয়ার দ্বারা পুনঃনির্দেশিত হয় যেখানে এটি প্রাপ্ত হয়
সেখানে একটি রিড অপারেশনের ফলে ট্যাপব্রিজ। ট্যাপব্রিজ তারপরে প্যাকেটটি লিখে দেয়
ns-3 নেট ডিভাইস যার সাথে এটি ব্রিজ করা হয়েছে; এবং তাই এটি লিনাক্স হোস্ট হিসাবে প্রদর্শিত হয়
একটি ns-3 নেট ডিভাইসের মাধ্যমে একটি ns-3 নেটওয়ার্কে সরাসরি একটি প্যাকেট পাঠানো হয়েছে।

অন্য দিকে, ট্যাপের সাথে সংযুক্ত ns-3 নেট ডিভাইস দ্বারা প্রাপ্ত একটি প্যাকেট
ব্রিজটি ট্যাপব্রিজে রিসিভ কলব্যাকের মাধ্যমে পাঠানো হয়। ট্যাপব্রিজ তখন সেটা নেয়
প্যাকেট করে এবং নেটওয়ার্ক ট্যাপ মেকানিজম ব্যবহার করে হোস্টে ফেরত পাঠায়। এই লিখুন
ডিভাইসটি লিনাক্স হোস্টের কাছে এমনভাবে প্রদর্শিত হবে যেন একটি নেট ডিভাইসে একটি প্যাকেট এসেছে; এবং
তাই যেন একটি সিমুলেশন চলাকালীন ns-3 নেট ডিভাইস দ্বারা প্রাপ্ত একটি প্যাকেট উপস্থিত হয়েছে৷
একটি বাস্তব লিনাক্স নেট ডিভাইসে।

ফলাফল হল যে ট্যাপ ব্রিজটি একটি লিনাক্স হোস্টে একটি ট্যাপ ডিভাইস ব্রিজ করতে দেখা যাচ্ছে
সিমুলেশনে একটি NS-3 নেট ডিভাইসে "বাস্তব বিশ্ব"। কারণ ট্যাপ ডিভাইস এবং
ব্রিজড ns-3 নেট ডিভাইসের একই MAC ঠিকানা আছে এবং নেটওয়ার্ক ট্যাপ IPC লিঙ্ক নেই
বাহ্যিকভাবে, এই বিশেষ ধরনের সেতুটি একটি NS-3 নেট ডিভাইস বলে মনে করে
আসলে লিনাক্স হোস্টে ইনস্টল করা আছে।

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

ঘোস্ট নোডের উচ্চ স্তর থেকে বিটগুলি ট্যাপব্রিজে পাঠানো হয় (ট্যাপব্রিজ ব্যবহার করে
পাঠান পদ্ধতি) সম্পূর্ণরূপে উপেক্ষা করা হয়. ট্যাপব্রিজটি নিজে থেকে কোনটির সাথে সংযুক্ত নয়
নেটওয়ার্ক, লিনাক্সে বা ns-3-তেও নয়। আপনি কখনই a এর উপর ডেটা পাঠাতে বা গ্রহণ করতে পারবেন না
ঘোস্ট নোড থেকে ট্যাপব্রিজ।

ব্রিজড এনএস-৩ নেট ডিভাইসটির রিসিভ কলব্যাক এনএস-৩ নোড থেকে সংযোগ বিচ্ছিন্ন হয়ে গেছে এবং
ট্যাপ ব্রিজের সাথে পুনরায় সংযোগ করা হয়েছে। একটি ব্রিজড ডিভাইস দ্বারা প্রাপ্ত সমস্ত ডেটা তারপর পাঠানো হবে
লিনাক্স হোস্টে এবং নোড দ্বারা গ্রহণ করা হবে না। দৃষ্টিকোণ থেকে
ঘোস্ট নোড, আপনি এই ডিভাইসটি পাঠাতে পারেন কিন্তু আপনি কখনই গ্রহণ করতে পারবেন না।

অবশ্যই, আপনি যদি সমস্ত সমস্যা বুঝতে পারেন তবে আপনি নিজের ভাগ্যের নিয়ন্ত্রণ নিতে পারেন
এবং আপনি যা চান তা করুন -- আমরা সক্রিয়ভাবে আপনাকে ঘোস্ট নোড ব্যবহার করতে বাধা দিই না
আপনি যা কিছু সিদ্ধান্ত নেন। আপনি ভূতের উপর সাধারণ ns-3 অপারেশন করতে সক্ষম হবেন
আপনি যদি তাই চান নোড. ইন্টারনেট স্ট্যাক, উদাহরণস্বরূপ, সেখানে থাকতে হবে এবং কার্যকরী হতে হবে
আইপি অ্যাড্রেস অ্যাসাইনমেন্ট এবং গ্লোবাল রাউটিংয়ে অংশগ্রহণ করার জন্য সেই নোড। যাহোক,
উপরে উল্লিখিত হিসাবে, ইন্টারফেসগুলি যে কোনও ট্যাপব্রিজ বা সম্পর্কিত ব্রিজযুক্ত নেট ডিভাইসগুলির সাথে কথা বলে
সম্পূর্ণরূপে কাজ করবে না। আপনি ঠিক কি করছেন তা বুঝতে পারলে আপনি সেট আপ করতে পারেন
ঘোস্ট নোডে অন্যান্য ইন্টারফেস এবং ডিভাইস এবং সেগুলি ব্যবহার করুন; অথবা সুবিধা নিতে
ট্রাফিক জেনারেটর তৈরি করার জন্য ব্রিজড ডিভাইসগুলির অপারেশনাল পাঠান সাইড। আমরা সাধারণত
সুপারিশ করুন যে আপনি এই নোডটিকে লিনাক্স হোস্টের ভূত হিসাবে বিবেচনা করুন এবং এটি নিজের কাছে ছেড়ে দিন,
যদিও।

ট্যাপব্রিজ স্থানীয় ব্যবহার করুন মোড অপারেশন
উপরে বর্ণিত হিসাবে, ট্যাপব্রিজ "বাস্তব" বিশ্ব থেকে একটি সেতুর মতো কাজ করে৷
সিমুলেটেড ns-3 ওয়ার্ল্ড। কনফিগারলোকাল মোডের ক্ষেত্রে, আইপি থেকে জীবন সহজ
ট্যাপ ডিভাইসের ঠিকানা ns-3 ডিভাইসের IP ঠিকানা এবং এর MAC ঠিকানার সাথে মেলে
ট্যাপ ডিভাইসটি ns-3 ডিভাইসের MAC ঠিকানার সাথে মেলে; এবং একটি এক থেকে এক আছে
ডিভাইসের মধ্যে সম্পর্ক।

যখন একটি ট্যাপ ডিভাইস বাহ্যিকভাবে a এর সাথে কনফিগার করা হয় তখন জিনিসগুলি কিছুটা জটিল হয়৷
ns-3 নেট ডিভাইসের চেয়ে ভিন্ন MAC ঠিকানা। এটি মোকাবেলা করার জন্য প্রচলিত উপায়
প্যাকেট গ্রহণ করার জন্য ব্রিজড ডিভাইসে প্রমিসকিউয়াস মোড ব্যবহার করা হয়
বিভিন্ন MAC ঠিকানার জন্য নির্ধারিত এবং সেগুলিকে লিনাক্সে ফরওয়ার্ড করুন। সরানোর জন্য
অন্যভাবে প্যাকেট করে, প্রচলিত সমাধান হল SendFrom() যা একজন কলারের অনুমতি দেয়
"স্পুফ" করুন বা ভিন্ন লিনাক্স ম্যাক ঠিকানার সাথে মেলে উৎস MAC ঠিকানা পরিবর্তন করুন।

লিনাক্স ভার্চুয়াল মেশিনে ব্রিজ করতে সক্ষম হওয়ার জন্য আমাদের একটি নির্দিষ্ট প্রয়োজনীয়তা রয়েছে
বেতার STA নোড. দুর্ভাগ্যবশত, 802.11 স্পেক একটি ভাল উপায় প্রদান করে না
SendFrom() প্রয়োগ করুন, তাই আমাদের সেই সমস্যার সমাধান করতে হবে।

এই লক্ষ্যে, আমরা ট্যাপ ব্রিজের UseLocal মোড প্রদান করেছি। এই মোড আপনাকে অনুমতি দেয়
আপনি একটি একক নেট ডিভাইসের সাহায্যে একটি সেতু তৈরি করছেন এমনভাবে সমস্যার কাছে যান। একটি একক
লিনাক্সের পাশে অনুমোদিত ঠিকানাটি ট্যাপব্রিজে মনে রাখা হয় এবং সমস্ত প্যাকেট আসছে
লিনাক্স পাশ থেকে ns-3 ডিভাইস MAC উৎস ব্যবহার করে ns-3 দিকে পুনরাবৃত্তি করা হয়
ঠিকানা ns-3 পাশ থেকে আসা সমস্ত প্যাকেট লিনাক্স সাইড ব্যবহার করে পুনরাবৃত্তি করা হয়
মনে রাখা MAC ঠিকানা। এটি আমাদের ns-3 ডিভাইসের পাশে Send() ব্যবহার করতে দেয়
সমস্ত ns-3 নেট ডিভাইসে উপলব্ধ।

UseLocal মোড নির্মাণ এবং ব্যতীত ConfigureLocal মোডের অনুরূপ
ট্যাপ ডিভাইসের কনফিগারেশন এবং ম্যাক অ্যাড্রেস স্পুফিং।

ট্যাপব্রিজ ইউজ ব্রিজ অপারেশন
কনফিগারলোকাল মোড বিভাগে বর্ণিত হিসাবে, যখন লিনাক্স হোস্ট একটিতে লেখে
/dev/tap ডিভাইসে, লেখাটি ট্যাপব্রিজে পুনঃনির্দেশিত হয় যা ns-3 বিশ্বে থাকে।
UseBridge মোডের ক্ষেত্রে, এই প্যাকেটগুলিকে ns-3-এ পাঠাতে হবে
নেটওয়ার্ক যেন লিনাক্স সেতুতে অংশগ্রহণকারী একটি ডিভাইসে পাঠানো হয়েছে। এর মানে
ব্রিজড ডিভাইসে SendFrom() পদ্ধতিতে কল করা এবং উৎস MAC ঠিকানা প্রদান করা
প্যাকেটে পাওয়া গেছে।

অন্য দিকে, একটি ns-3 নেট ডিভাইস দ্বারা প্রাপ্ত একটি প্যাকেট কলব্যাকের মাধ্যমে হুক করা হয়
ট্যাপব্রিজ। এটি অবশ্যই প্রমিসকিউস মোডে করা উচিত কারণ লক্ষ্য হল ns-3 ব্রিজ করা
OS (brctl) সেতুতে নেট ডিভাইস যার TAP ডিভাইসটি একটি অংশ।

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

টোকা সেতু চ্যানেল মডেল
ট্যাপ ব্রিজের সাথে যুক্ত কোন চ্যানেল মডেল নেই। আসলে, উদ্দেশ্য করা হয়
দেখা যাচ্ছে যে প্রকৃত ইন্টারনেট হোস্ট ব্রিজড নেট চ্যানেলের সাথে সংযুক্ত
যন্ত্র.

টোকা সেতু রচনা মডেল
বেশিরভাগ ns-3 ডিভাইসের বিপরীতে, TapBridge কোনো স্ট্যান্ডার্ড ট্রেস উৎস প্রদান করে না। এই
কারণ সেতুটি একটি মধ্যস্থতাকারী যা মূলত একটি ফাংশন কল থেকে দূরে
ব্রিজড ডিভাইস। আমরা আশা করি যে ব্রিজড ডিভাইসে ট্রেস হুক থাকবে
বেশিরভাগ ব্যবহারকারীর জন্য যথেষ্ট,

ব্যবহার দ্য ট্যাপব্রিজ
আমরা আশা করি যে বেশিরভাগ ব্যবহারকারী এর মাধ্যমে ট্যাপব্রিজ ডিভাইসের সাথে ইন্টারঅ্যাক্ট করবে
TapBridgeHelper. CSMA বা Wifi-এর মতো অন্যান্য হেল্পার ক্লাসের ব্যবহারকারী হওয়া উচিত
সেখানে ব্যবহৃত বাগধারার সাথে আরামদায়ক।

শক্তি ফ্রেম ওয়ার্ক


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

মডেল বিবরণ
এনার্জি ফ্রেমওয়ার্কের সোর্স কোড বর্তমানে এখানে রয়েছে: src/শক্তি.

নকশা
ns-3 এনার্জি ফ্রেমওয়ার্ক 3টি অংশ নিয়ে গঠিত: শক্তির উৎস, ডিভাইস এনার্জি মডেল এবং
এনার্জি হারভেস্টার। কাঠামোর মধ্যে বাস্তবায়িত হয় src/energy/models ফোল্ডার.

শক্তি উৎস
শক্তির উৎস প্রতিটি নোডে পাওয়ার সাপ্লাই প্রতিনিধিত্ব করে। একটি নোড এক বা একাধিক থাকতে পারে
শক্তির উত্স, এবং প্রতিটি শক্তির উত্স একাধিক ডিভাইস শক্তি মডেলের সাথে সংযুক্ত করা যেতে পারে।
একটি শক্তির উত্সকে একটি ডিভাইসের শক্তি মডেলের সাথে সংযুক্ত করা বোঝায় যে সংশ্লিষ্ট ডিভাইসটি
উৎস থেকে শক্তি টানে। শক্তির উৎসের মৌলিক কার্যকারিতা প্রদান করা হয়
নোডের ডিভাইসগুলির জন্য শক্তি। যখন শক্তির উত্স থেকে শক্তি সম্পূর্ণরূপে নিষ্কাশন করা হয়,
এটি নোডে থাকা ডিভাইসগুলিকে সূচিত করে যাতে প্রতিটি ডিভাইস এই ইভেন্টে প্রতিক্রিয়া জানাতে পারে। আরও,
প্রতিটি নোড তথ্যের জন্য শক্তির উৎস বস্তু অ্যাক্সেস করতে পারে যেমন অবশিষ্ট শক্তি বা
শক্তি ভগ্নাংশ (ব্যাটারি স্তর)। এটি শক্তি সচেতন প্রোটোকল বাস্তবায়ন সক্ষম করে
ns-3 এ।

ব্যাটারির মতো বিদ্যুৎ সরবরাহের বিস্তৃত পরিসরের মডেল করার জন্য, শক্তির উত্স আবশ্যক
এই সরবরাহের বৈশিষ্ট্য ক্যাপচার করতে সক্ষম হবেন. 2টি গুরুত্বপূর্ণ
ব্যবহারিক ব্যাটারির সাথে সম্পর্কিত বৈশিষ্ট্য বা প্রভাব:

হার ধারণক্ষমতা প্রভাব
বর্তমান ড্র রেট করা মানের থেকে বেশি হলে ব্যাটারি লাইফটাইম কমে যায়
ব্যাটারি

পুনরুদ্ধার প্রভাব
ব্যাটারি লাইফটাইম বৃদ্ধি যখন ব্যাটারি ডিসচার্জ এবং মধ্যে পর্যায়ক্রমে হয়
নিষ্ক্রিয় অবস্থা।

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

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

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

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

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

ওয়াইফাই রেডিও শক্তি মডেল
ওয়াইফাই রেডিও এনার্জি মডেল হল একটি ওয়াইফাই নেট ডিভাইসের শক্তি খরচ মডেল। এটা
PHY স্তরের প্রতিটি উপলব্ধ অবস্থার জন্য একটি রাজ্য প্রদান করে: Idle, CcaBusy, Tx, Rx,
চ্যানেল সুইচ, ঘুম। এই জাতীয় প্রতিটি রাজ্যের একটি মান (অ্যাম্পিয়ারে) এর সাথে যুক্ত
বর্তমান ড্র (সংশ্লিষ্ট বৈশিষ্ট্যের নামগুলির জন্য নীচে দেখুন)। একটি ওয়াইফাই রেডিও এনার্জি মডেল
PHY শ্রোতা প্রতিটি Wifi PHY অবস্থা সম্পর্কে অবহিত হওয়ার জন্য Wifi PHY-তে নিবন্ধিত হয়
স্থানান্তর প্রতিটি ট্রানজিশনে, পূর্ববর্তী অবস্থায় ব্যবহৃত শক্তি গণনা করা হয় এবং
অবশিষ্ট শক্তি আপডেট করার জন্য শক্তির উৎসকে অবহিত করা হয়।

Wifi Tx বর্তমান মডেলটি বর্তমান ড্র গণনা করার সম্ভাবনা দেয়৷
নামমাত্র tx শক্তির একটি ফাংশন হিসাবে ট্রান্সমিট স্টেট (dBm এ), যেমনটি বেশ কয়েকটিতে দেখা গেছে
পরীক্ষামূলক পরিমাপ। এই উদ্দেশ্যে, ওয়াইফাই রেডিও এনার্জি মডেল PHY লিসেনার
বর্তমান ফ্রেম প্রেরণ করতে ব্যবহৃত নামমাত্র tx শক্তি সম্পর্কে অবহিত করা হয় এবং এই জাতীয় একটি পাস করে
Wifi Tx বর্তমান মডেলের মান যা Tx-এ বর্তমান ড্র আপডেট করার যত্ন নেয়
অবস্থা. তাই, ওয়াইফাই রিমোট স্টেশন থাকলেও শক্তি খরচ সঠিকভাবে গণনা করা হয়
ম্যানেজার প্রতি-ফ্রেম পাওয়ার কন্ট্রোল করে। বর্তমানে, একটি লিনিয়ার ওয়াইফাই Tx বর্তমান মডেল
বাস্তবায়িত যা tx কারেন্টকে রৈখিক ফাংশন হিসাবে গণনা করে (প্যারামিটার অনুসারে
যেটি ব্যবহারকারী দ্বারা নির্দিষ্ট করা যেতে পারে) dBm-এ নামমাত্র tx পাওয়ার।

ওয়াইফাই রেডিও এনার্জি মডেল একটি কলব্যাক নির্দিষ্ট করার সম্ভাবনা অফার করে যা আহ্বান করা হয়েছে
যখন শক্তির উৎস নিঃশেষ হয়ে যায়। এ ধরনের কলব্যাক হলে ওয়াইফাই নির্দিষ্ট করে না
রেডিও এনার্জি মডেল হেল্পার একটি ডিভাইসে মডেল ইনস্টল করতে ব্যবহার করা হয়, একটি কলব্যাক হয়
পরোক্ষভাবে তৈরি করা হয়েছে যাতে ওয়াইফাই PHY স্লিপ মোডে রাখা হয় (তাই কোন ফ্রেম নেই
প্রেরিত বা পরে প্রাপ্ত হয় না) যখন শক্তির উত্স হ্রাস পায়। একইভাবে, এটা
শক্তির উৎস রিচার্জ করার সময় একটি কলব্যাক উল্লেখ করা সম্ভব (যা
শক্তির উৎসের সাথে একটি এনার্জি হারভেস্টার সংযুক্ত থাকলে ঘটতে পারে)। যদি এমন ক
ওয়াইফাই রেডিও এনার্জি মডেল হেল্পার ইনস্টল করার জন্য ব্যবহার করা হলে কলব্যাক নির্দিষ্ট করা হয় না
একটি ডিভাইসে মডেল, একটি কলব্যাক পরোক্ষভাবে তৈরি করা হয় যাতে Wifi PHY পুনরায় শুরু হয়
শক্তির উৎস রিচার্জ করা হলে স্লিপ মোড।

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

তথ্যসূত্র
[1] ns-2 শক্তি মডেল:
http://www.cubinlab.ee.unimelb.edu.au/~jrid/Docs/Manuel-NS2/node204.html

[২] এইচ. উ, এস. নাবর এবং আর. পুভেন্দ্রন। নেটওয়ার্ক সিমুলেটর 2 এর জন্য একটি শক্তি কাঠামো
(ns-3)।

[৩] এম. হ্যান্ডি এবং ডি. টিমারম্যান। নির্ভুল সহ মোবাইল ওয়্যারলেস নেটওয়ার্কের সিমুলেশন
নন-লিনিয়ার ব্যাটারি ইফেক্টের মডেলিং। Proc ইন. ফলিত সিমুলেশন এবং মডেলিং এর
(ASM), 2003।

[৪] ডিএন রাখমাতভ এবং এসবি ভ্রুধুলা। ব্যবহারের জন্য একটি বিশ্লেষণাত্মক উচ্চ-স্তরের ব্যাটারি মডেল
পোর্টেবল ইলেকট্রনিক সিস্টেমের শক্তি ব্যবস্থাপনা। Proc ইন. IEEE/ACM ইন্টারন্যাশনাল এর
কনফারেন্স অন কম্পিউটার এডেড ডিজাইন (ICCAD'01), পৃষ্ঠা 488-493, নভেম্বর 2001।

[৫] ডিএন রাখমাতভ, এসবি ভ্রুধুলা এবং ডিএ ওয়ালাচ। জন্য ব্যাটারি লাইফটাইম পূর্বাভাস
শক্তি-সচেতন কম্পিউটিং। Proc ইন. 2002 লো পাওয়ারের আন্তর্জাতিক সিম্পোজিয়ামের
ইলেকট্রনিক্স অ্যান্ড ডিজাইন (ISLPED'02), পৃষ্ঠা 154-159, 2002।

[৬] সি. ট্যাপারেলো, এইচ আয়াতুল্লাহি এবং ডব্লিউ হেইনজেলম্যান। জন্য শক্তি ফ্রেমওয়ার্ক প্রসারিত
নেটওয়ার্ক সিমুলেটর 3 (ns-3)। কর্মশালা ns-3 (WNS3), পোস্টার সেশন, আটলান্টা, GA,
আমেরিকা. মে, 2014।

ব্যবহার
ns-3 ব্যবহারকারীরা সাধারণত এনার্জি ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করার প্রধান উপায় হল
সহায়ক API এবং ফ্রেমওয়ার্কের সর্বজনীনভাবে দৃশ্যমান বৈশিষ্ট্যগুলির মাধ্যমে। সাহায্যকারী
API-এ সংজ্ঞায়িত করা হয়েছে src/energy/helper/*.h.

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

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

উদাহরণ
উদাহরণ ডিরেক্টরি, src/examples/energy এবং উদাহরণ/শক্তি, কিছু মৌলিক কোড থাকে
এটা দেখায় কিভাবে ফ্রেমওয়ার্ক সেট আপ করতে হয়।

সাহায্যকারী
শক্তি উৎস সাহায্যকারী
শক্তির উৎস বস্তুর জন্য বেস হেল্পার শ্রেণী, এই সাহায্যকারী শক্তির উৎস বস্তুকে একত্রিত করে
একটি নোডের উপর। এই শ্রেণীর শিশু বাস্তবায়ন প্রকৃত শক্তির উৎস বস্তু তৈরি করে।

যন্ত্র শক্তি মডেল সাহায্যকারী
ডিভাইস এনার্জি মডেল অবজেক্টের জন্য বেস হেল্পার ক্লাস, এই হেল্পার ডিভাইস এনার্জি সংযুক্ত করে
শক্তির উৎস বস্তুর উপর মডেল অবজেক্ট। এই শ্রেণীর শিশু বাস্তবায়ন তৈরি করে
প্রকৃত ডিভাইস শক্তি মডেল বস্তু.

শক্তি ফসল সাহায্যকারী
এনার্জি হারভেস্টার অবজেক্টের জন্য বেস হেল্পার ক্লাস, এই হেল্পার এনার্জি হারভেস্টার সংযুক্ত করে
শক্তির উৎস বস্তুর উপর বস্তু। এই শ্রেণীর শিশু বাস্তবায়ন প্রকৃত তৈরি করে
এনার্জি হারভেস্টার অবজেক্ট।

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

মৌলিক শক্তি উৎস
· বেসিক এনার্জি সোর্স ইনিশিয়াল এনার্জিজে: প্রাথমিক শক্তি মৌলিক শক্তির উৎসে সংরক্ষিত।

· বেসিক এনার্জি সাপ্লাই ভোল্টেজভি: মৌলিক শক্তির উৎসের জন্য প্রাথমিক সরবরাহ ভোল্টেজ।

· পর্যায়ক্রমিক শক্তি আপডেট অন্তর: পরপর দুটি পর্যায়ক্রমিক শক্তি আপডেটের মধ্যে সময়।

RV ব্যাটারি মডেল
· RvBatteryModelPeriodicEnergyUpdateInterval: RV ব্যাটারি মডেল নমুনা ব্যবধান.

· RvBatteryModelOpenCircuitVoltage: RV ব্যাটারি মডেল খোলা সার্কিট ভোল্টেজ.

· RvBatteryModelCutoffVoltage: আরভি ব্যাটারি মডেল কাটঅফ ভোল্টেজ।

· RvBatteryModelAlphaValue: RV ব্যাটারি মডেল আলফা মান.

· RvBatteryModelBetaValue: RV ব্যাটারি মডেল বিটা মান.

· RvBatteryModelNumOfTerms: ব্যাটারি অনুমান করার জন্য অসীম যোগফলের পদের সংখ্যা
স্তর।

ওয়াইফাই রেডিও শক্তি মডেল
· IdleCurrentA: অ্যাম্পিয়ারে ডিফল্ট রেডিও নিষ্ক্রিয় কারেন্ট।

· CcaBusyCurrentA: অ্যাম্পিয়ারে ডিফল্ট রেডিও CCA ব্যস্ত স্টেট কারেন্ট।

· TxCurrentA: অ্যাম্পিয়ারে রেডিও Tx কারেন্ট।

· RxCurrentA: অ্যাম্পিয়ারে রেডিও Rx কারেন্ট।

· সুইচিং কারেন্টএ: অ্যাম্পিয়ারে ডিফল্ট রেডিও চ্যানেল স্যুইচ কারেন্ট।

· স্লিপ কারেন্টএ: অ্যাম্পিয়ারে রেডিও স্লিপ কারেন্ট।

· TxCurrentModel: সংযুক্ত tx বর্তমান মডেলের একটি পয়েন্টার।

মৌলিক শক্তি ফসল কাটার যন্ত্র
· পর্যায়ক্রমিক হারভেস্টেড পাওয়ারআপডেট ইন্টারভাল: দুটি পরপর পর্যায়ক্রমিক আপডেটের মধ্যে সময়
সংগ্রহ করা শক্তি।

· সংগ্রহযোগ্য শক্তি: র্যান্ডম ভেরিয়েবল যা প্রদান করা শক্তির পরিমাণ প্রতিনিধিত্ব করে
এনার্জি হারভেস্টার দ্বারা।

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

মৌলিক শক্তি উৎস
· অবশিষ্ট শক্তি: BasicEnergySource এ অবশিষ্ট শক্তি।

RV ব্যাটারি মডেল
· আরভিব্যাটারি মডেল ব্যাটারি লেভেল: RV ব্যাটারি মডেল ব্যাটারি স্তর.

· আরভিব্যাটারি মডেল ব্যাটারি লাইফটাইম: RV ব্যাটারি মডেল ব্যাটারি জীবনকাল.

ওয়াইফাই রেডিও শক্তি মডেল
· টোটাল এনার্জি কনজাম্পশন: রেডিও ডিভাইসের মোট শক্তি খরচ.

মৌলিক শক্তি ফসল কাটার যন্ত্র
· হারভেস্টেড পাওয়ার: BasicEnergyHarvester দ্বারা প্রদত্ত বর্তমান শক্তি।

· Total Energy Harvested: BasicEnergyHarvester দ্বারা সংগ্রহ করা মোট শক্তি।

ভ্যালিডেশন
প্রকৃত ডিভাইসের সাথে এনার্জি ফ্রেমওয়ার্কের তুলনা করা হয়নি। কারেন্ট
এনার্জি ফ্রেমওয়ার্কের বাস্তবায়ন গণনার ত্রুটির জন্য সংখ্যাগতভাবে পরীক্ষা করা হয়। দ্য
আরভি ব্যাটারি মডেলটি আসল ফলাফলের সাথে তুলনা করে যাচাই করা হয়
আরভি ব্যাটারি মডেল পেপার।

প্রবাহ মনিটর


মডেল বিবরণ
নতুন মডিউলের সোর্স কোড ডিরেক্টরিতে থাকে src/flow-monitor.

ফ্লো মনিটর মডিউল লক্ষ্য হল কর্মক্ষমতা পরিমাপ করার জন্য একটি নমনীয় সিস্টেম প্রদান করা
নেটওয়ার্ক প্রোটোকল। মডিউলটি ট্র্যাক করতে নেটওয়ার্ক নোডে ইনস্টল করা প্রোব ব্যবহার করে
নোড দ্বারা প্যাকেট বিনিময়, এবং এটি পরামিতি একটি সংখ্যা পরিমাপ করা হবে. প্যাকেট হয়
তারা যে প্রবাহের সাথে সম্পর্কিত তার অনুসারে বিভক্ত, যেখানে প্রতিটি প্রবাহকে অনুসারে সংজ্ঞায়িত করা হয়
প্রোবের বৈশিষ্ট্য (উদাহরণস্বরূপ, আইপি-র জন্য, একটি প্রবাহ একই সাথে প্যাকেট হিসাবে সংজ্ঞায়িত করা হয়
{প্রোটোকল, উৎস (আইপি, পোর্ট), গন্তব্য (আইপি, পোর্ট)} টিপল।

প্রতিটি প্রবাহের জন্য পরিসংখ্যান সংগ্রহ করা হয় XML বিন্যাসে রপ্তানি করা যেতে পারে। তাছাড়া, দ
ব্যবহারকারী প্রতিটি প্রবাহ সম্পর্কে নির্দিষ্ট পরিসংখ্যানের জন্য অনুরোধ করতে সরাসরি প্রোব অ্যাক্সেস করতে পারেন।

নকশা
ফ্লো মনিটর মডিউলটি একটি মডুলার উপায়ে ডিজাইন করা হয়েছে। এটা সাবক্লাসিং দ্বারা প্রসারিত করা যেতে পারে
ns3::ফ্লোপ্রোব এবং ns3::ফ্লো ক্লাসিফায়ার.

সম্পূর্ণ মডিউল ডিজাইন [ফ্লো মনিটর] এ বর্ণনা করা হয়েছে

ব্যাপ্তি এবং সীমাবদ্ধতা
এই মুহুর্তে, IPv4 এবং IPv6-এর জন্য প্রোব এবং ক্লাসিফায়ার উপলব্ধ।

প্রতিটি প্রোব প্যাকেটকে চারটি পয়েন্টে শ্রেণীবদ্ধ করবে:

· যখন একটি প্যাকেট পাঠানো হয় (SendOutgoing IPv[4,6] ট্রেস)

· যখন একটি প্যাকেট ফরোয়ার্ড করা হয় (UnicastForward IPv[4,6] ট্রেস)

· যখন একটি প্যাকেট পাওয়া যায় (লোকালডেলিভার আইপিভি[4,6] ট্রেস)

· যখন একটি প্যাকেট ফেলে দেওয়া হয় (আইপিভি[৪,৬] ট্রেস ড্রপ করুন)

যেহেতু প্যাকেটগুলি আইপি স্তরে ট্র্যাক করা হয়, তাই L4 প্রোটোকল দ্বারা সৃষ্ট যেকোনো পুনঃপ্রচার
(যেমন, TCP) প্রোবের দ্বারা একটি নতুন প্যাকেট হিসাবে দেখা হবে।

প্যাকেটে একটি ট্যাগ যোগ করা হবে (ns3::Ipv[4,6]FlowProbeTag) ট্যাগ মৌলিক বহন করবে
প্যাকেটের ডেটা, প্যাকেটের শ্রেণীবিভাগের জন্য দরকারী।

এটি অবশ্যই আন্ডারলাইন করা উচিত যে শুধুমাত্র L4 (TCP, UDP) প্যাকেটগুলি এখনও পর্যন্ত শ্রেণীবদ্ধ। তাছাড়া,
শুধুমাত্র unicast প্যাকেট শ্রেণীবদ্ধ করা হবে. ভবিষ্যতে এই সীমাবদ্ধতাগুলি অপসারণ করা যেতে পারে।

প্রতিটি প্রবাহের জন্য সংগৃহীত তথ্য হল:

· timeFirstTxPacket: যখন প্রবাহের প্রথম প্যাকেটটি প্রেরণ করা হয়েছিল;

· timeLastTxPacket: যখন প্রবাহের শেষ প্যাকেটটি প্রেরণ করা হয়েছিল;

· timeFirstRxPacket: যখন প্রবাহে প্রথম প্যাকেটটি একটি শেষ নোড দ্বারা গৃহীত হয়েছিল;

· timeLastRxPacket: যখন প্রবাহের শেষ প্যাকেটটি গৃহীত হয়েছিল;

· delaySum: প্রবাহের সমস্ত প্রাপ্ত প্যাকেটের জন্য সমস্ত শেষ থেকে শেষ বিলম্বের যোগফল;

· jitterSum: সকলের জন্য শেষ থেকে শেষ বিলম্বের জিটার (বিলম্বের ভিন্নতা) মানগুলির যোগফল
প্রবাহের প্যাকেট পেয়েছে, যেমন সংজ্ঞায়িত করা হয়েছে জন্য RFC 3393;

· txBytes, txPackets: প্রবাহের জন্য প্রেরিত বাইট/প্যাকেটের মোট সংখ্যা;

· rxBytes, rxPackets: প্রবাহের জন্য প্রাপ্ত বাইট/প্যাকেটের মোট সংখ্যা;

· হারিয়ে যাওয়া প্যাকেট: প্যাকেটের মোট সংখ্যা যা হারিয়ে গেছে বলে ধরে নেওয়া হয়েছে (10 টির বেশি রিপোর্ট করা হয়নি
সেকেন্ড);

· বার ফরওয়ার্ড করা হয়েছে: যতবার একটি প্যাকেট ফরোয়ার্ড করা হয়েছে বলে জানা গেছে;

· delayHistogram, jitterHistogram, packetSizeHistogram: বিলম্বের জন্য হিস্টোগ্রাম সংস্করণ,
jitter, এবং প্যাকেট মাপ, যথাক্রমে;

· প্যাকেট ড্রপড, বাইট ড্রপড: হারানো প্যাকেট এবং বাইটের সংখ্যা অনুযায়ী বিভক্ত
ক্ষতির কারণ কোড (প্রোবে সংজ্ঞায়িত)।

এটা উল্লেখ করার মতো যে প্রোবগুলি আইপি হেডার সহ প্যাকেট বাইট পরিমাপ করে।
L2 শিরোনাম পরিমাপ অন্তর্ভুক্ত করা হয় না.

অনুরোধের ভিত্তিতে এই পরিসংখ্যানগুলি XML আকারে লেখা হবে (ব্যবহার বিভাগটি দেখুন)।

তথ্যসূত্র
[ফ্লো মনিটর]

G. Carneiro, P. Fortuna, এবং M. Ricardo. 2009. ফ্লো মনিটর: একটি নেটওয়ার্ক মনিটরিং ফ্রেমওয়ার্ক
নেটওয়ার্ক সিমুলেটর 3 (NS-3) এর জন্য। চতুর্থ আন্তর্জাতিক ICST এর কার্যধারায়
পারফরমেন্স ইভালুয়েশন মেথডলজিস এবং টুলস অন কনফারেন্স (VALUETOOLS '09)।
http://dx.doi.org/10.4108/ICST.VALUETOOLS2009.7493

ব্যবহার
মডিউল ব্যবহার অত্যন্ত সহজ. সাহায্যকারী সবকিছুর যত্ন নেবে।

সাধারণ ব্যবহার হল:

// ফ্লো মনিটর
Ptr ফ্লো মনিটর;
FlowMonitorHelper flowHelper;
flowMonitor = flowHelper.InstallAll();

সিমুলেটর::স্টপ (সেকেন্ড(স্টপ_টাইম));
সিমুলেটর::রান ();

flowMonitor->SerializeToXmlFile("NameOfFile.xml", সত্য, সত্য);

দ্য SerializeToXmlFile () ফাংশন 2nd এবং 3rd প্যারামিটার যথাক্রমে ব্যবহৃত হয়
হিস্টোগ্রাম এবং প্রতি-প্রোবের বিস্তারিত পরিসংখ্যান সক্রিয়/নিষ্ক্রিয় করুন।

অন্যান্য সম্ভাব্য বিকল্প ডক্সিজেন ডকুমেন্টেশনে পাওয়া যাবে।

সাহায্যকারী
হেল্পার এপিআই সাধারণ হেল্পারদের প্যাটার্ন ব্যবহার অনুসরণ করে। সাহায্যকারীর মাধ্যমে আপনি পারেন
নোডগুলিতে মনিটর ইনস্টল করুন, মনিটরের বৈশিষ্ট্যগুলি সেট করুন এবং পরিসংখ্যান মুদ্রণ করুন।

একটি গুরুত্বপূর্ণ বিষয় হল: ns3::FlowMonitorHelper শুধুমাত্র একবার instantiated করা আবশ্যক
প্রধান

আরোপ করা
মডিউল নিম্নলিখিত বৈশিষ্ট্য প্রদান করে ns3::ফ্লো মনিটর:

· MaxPerHopDelay (সময়, ডিফল্ট 10s): সর্বোচ্চ প্রতি-হপ বিলম্ব যা বিবেচনা করা উচিত;

· স্টার্টটাইম (সময়, ডিফল্ট 0s): যে সময় পর্যবেক্ষণ শুরু হয়;

· DelayBinWidth (ডবল, ডিফল্ট 0.001): বিলম্ব হিস্টোগ্রামে ব্যবহৃত প্রস্থ;

· JitterBinWidth (ডাবল, ডিফল্ট 0.001): জিটার হিস্টোগ্রামে ব্যবহৃত প্রস্থ;

· PacketSizeBinWidth (ডাবল, ডিফল্ট 20.0): প্যাকেট সাইজ হিস্টোগ্রামে ব্যবহৃত প্রস্থ;

· প্রবাহ বাধা বিন প্রস্থ (ডাবল, ডিফল্ট 0.25): প্রস্থ ব্যবহৃত হয়
প্রবাহ বাধা হিস্টোগ্রাম;

· ফ্লো ইনটারাপশনমিন টাইম (ডবল, ডিফল্ট 0.5): ন্যূনতম আন্তঃ আগমনের সময়
একটি প্রবাহ বাধা হিসাবে বিবেচিত.

আউটপুট
প্রধান মডেল আউটপুট প্রবাহ পরিসংখ্যান সম্পর্কে একটি XML ফর্ম্যাট রিপোর্ট. একটি উদাহরণ হল:




























আউটপুটটি 10.1.3.1 থেকে 10.1.2.2 পর্যন্ত একটি TCP প্রবাহের মাধ্যমে তৈরি হয়েছিল।

এটা লক্ষণীয় যে সূচক 2 প্রোব এর চেয়ে বেশি প্যাকেট এবং আরও বাইট রিপোর্ট করছে
অন্যান্য সমস্যা। এটি একটি সম্পূর্ণ স্বাভাবিক আচরণ, কারণ প্যাকেটগুলি আইপিতে খণ্ডিত হয়
যে নোড মধ্যে স্তর.

এটাও লক্ষ্য করা উচিত যে রিসিভিং নোডের প্রোব (ইনডেক্স 4) গণনা করে না
টুকরো, যেমন প্রোবিং পয়েন্টের আগে পুনরায় একত্রিত করা হয়।

উদাহরণ
উদাহরণে অবস্থিত src/flow-monitor/examples.

অধিকন্তু, নিম্নলিখিত উদাহরণগুলি ফ্লো-মনিটর মডিউল ব্যবহার করে:

· উদাহরণ/matrix-topology/matrix-topology.cc

· example/routing/manet-routing-compare.cc

· example/routing/simple-global-routing.cc

· উদাহরণ/tcp/tcp-variants-comparison.cc

· উদাহরণ/wireless/multirate.cc

· উদাহরণ/wireless/wifi-hidden-terminal.cc

সমস্যা সমাধান
একাধিক সংজ্ঞায়িত করবেন না ns3::FlowMonitorHelper সিমুলেশনে

ভ্যালিডেশন
রেফারেন্সের কাগজটিতে a এর বিরুদ্ধে মডিউল বৈধতার সম্পূর্ণ বিবরণ রয়েছে
পরীক্ষা নেটওয়ার্ক।

হিস্টোগ্রাম সঠিক কার্যকারিতা নিশ্চিত করতে পরীক্ষা প্রদান করা হয়।

ইন্টারনেট মডেল


Internet গাদা
Internet গাদা মোট পরিমাণ
একটা বেয়ার ক্লাস নোড হিসাবে খুব দরকারী নয়; অন্যান্য অবজেক্ট এর সাথে একত্রিত করা আবশ্যক
দরকারী নোড কার্যকারিতা প্রদান.

সার্জারির ns-3 সোর্স কোড ডিরেক্টরি এসআরসি/ইন্টারনেট TCP/IPv4- এবং এর বাস্তবায়ন প্রদান করে
IPv6-সম্পর্কিত উপাদান। এর মধ্যে রয়েছে IPv4, ARP, UDP, TCP, IPv6, Neighbour Discovery, এবং
অন্যান্য সম্পর্কিত প্রোটোকল।

ইন্টারনেট নোড ক্লাস নোডের সাবক্লাস নয়; তারা কেবল একটি ছিল যে নোড
তাদের সাথে একত্রিত আইপি-সম্পর্কিত বস্তুর গুচ্ছ। তারা হাত দ্বারা একসঙ্গে করা যেতে পারে, বা একটি মাধ্যমে
সহায়ক ফাংশন InternetStackHelper::ইনস্টল করুন () যা সমস্ত নোডের জন্য নিম্নলিখিত করে
আর্গুমেন্ট হিসাবে পাস:

অকার্যকর
InternetStackHelper::ইনস্টল (Ptr node) const
{
যদি (m_ipv4 সক্ষম)
{
/* IPv4 স্ট্যাক */
যদি (নোড->গেটঅবজেক্ট () != 4)
{
NS_FATAL_ERROR ("InternetStackHelper::Install (): Aggregating "
"একটি বিদ্যমান Ipv4 অবজেক্ট সহ একটি নোডে একটি InternetStack");
আসতে;
}

CreateAndAggregateObjectFromTypeId (নোড, "ns3::ArpL3Protocol");
CreateAndAggregateObjectFromTypeId (নোড, "ns3::Ipv4L3Protocol");
CreateAndAggregateObjectFromTypeId (নোড, "ns3::Icmpv4L4Protocol");
// রাউটিং সেট করুন
Ptr ipv4 = নোড->গেটঅবজেক্ট ();
Ptr ipv4Routing = m_routing->Create (node);
ipv4->SetRoutingProtocol (ipv4Routing);
}

যদি (m_ipv6 সক্ষম)
{
/* IPv6 স্ট্যাক */
যদি (নোড->গেটঅবজেক্ট () != 6)
{
NS_FATAL_ERROR ("InternetStackHelper::Install (): Aggregating "
"একটি বিদ্যমান Ipv6 অবজেক্ট সহ একটি নোডে একটি InternetStack");
আসতে;
}

CreateAndAggregateObjectFromTypeId (নোড, "ns3::Ipv6L3Protocol");
CreateAndAggregateObjectFromTypeId (নোড, "ns3::Icmpv6L4Protocol");
// রাউটিং সেট করুন
Ptr ipv6 = নোড->গেটঅবজেক্ট ();
Ptr ipv6Routing = m_routingv6->তৈরি করুন (নোড);
ipv6->SetRoutingProtocol (ipv6Routing);

/* IPv6 এক্সটেনশন এবং বিকল্পগুলি নিবন্ধন করুন */
ipv6->রেজিস্টার এক্সটেনশন ();
ipv6->রেজিস্টার অপশন ();
}

যদি (m_ipv4Enabled || m_ipv6Enabled)
{
/* UDP এবং TCP স্ট্যাক */
CreateAndAggregateObjectFromTypeId (নোড, "ns3::UdpL4Protocol");
node->AggregateObject (m_tcpFactory.Create ());
Ptr factory = CreateObject ();
node->AggregateObject (ফ্যাক্টরি);
}
}

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

নোট করুন যে রাউটিং প্রোটোকল কনফিগার করা হয়েছে এবং এই ফাংশনের বাইরে সেট করা আছে। গতানুগতিক,
নিম্নলিখিত প্রোটোকল যোগ করা হয়:

void InternetStackHelper::Initialize ()
{
SetTcp ("ns3::TcpL4Protocol");
Ipv4 StaticRoutingHelper staticRouting;
Ipv4GlobalRoutingHelper GlobalRouting;
Ipv4ListRoutingHelper listRouting;
Ipv6ListRoutingHelper listRoutingv6;
Ipv6 StaticRoutingHelper staticRoutingv6;
listRouting.Add (staticRouting, 0);
listRouting.Add (globalRouting, -10);
listRoutingv6.Add (staticRoutingv6, 0);
SetRoutingHelper (তালিকা রাউটিং);
SetRoutingHelper (listRoutingv6);
}

ডিফল্টরূপে, IPv4 এবং IPv6 সক্ষম।

Internet নোড গঠন
একটি আইপি-সক্ষম নোড (একটি ns-3 এক বা একাধিক আইপি স্ট্যাক থাকতে একত্রিতকরণ দ্বারা নোড বৃদ্ধি করা হয়)
নিম্নলিখিত অভ্যন্তরীণ গঠন আছে.

লেয়ার -3 প্রোটোকল
সর্বনিম্ন স্তরে, NetDevices-এর উপরে বসে, "লেয়ার 3" প্রোটোকলগুলি সহ
IPv4, IPv6, ARP ইত্যাদি। শ্রেণী Ipv4L3 প্রোটোকল একটি বাস্তবায়ন শ্রেণী যার
পাবলিক ইন্টারফেস সাধারণত ক্লাস হয় আইপিভি৪, কিন্তু Ipv4L3Protocol পাবলিক APIও ব্যবহার করা হয়
বর্তমানে অভ্যন্তরীণভাবে।

Ipv4L3Protocol ক্লাসে, নীচে বর্ণিত একটি পদ্ধতি হল নিন ():

/ **
* L3Demux::Lookup কল করার পর নিম্ন স্তরটি এই পদ্ধতিটিকে কল করে
* ARP সাবক্লাস জানতে হবে কোন NetDevice থেকে এটি
* প্যাকেট আসছে:
* - প্রতি-NetDevice ARP ক্যাশে প্রয়োগ করুন
* - সঠিক ডিভাইসে আরপি উত্তর পাঠান
*/
অকার্যকর প্রাপ্তি (Ptr ডিভাইস, Ptr p, uint16_t প্রোটোকল,
const ঠিকানা &from, const ঠিকানা &to, NetDevice::PacketType packetType);

প্রথমত, নোট করুন যে নিন () রিসিভকলব্যাকের সাথে ফাংশনের একটি মিলিত স্বাক্ষর রয়েছে
ক্লাসে নোড. এই ফাংশন পয়েন্টার নোড এর প্রোটোকল হ্যান্ডলার মধ্যে সন্নিবেশ করা হয় যখন
ইন্টারফেস যোগ করুন () বলা হয়. প্রকৃত নিবন্ধন যেমন একটি বিবৃতি দিয়ে সম্পন্ন করা হয়
অনুসরণ:

RegisterProtocolHandler ( MakeCallback (&Ipv4Protocol::Receive, ipv4),
Ipv4L3Protocol::PROT_NUMBER, 0);

Ipv4L3Protocol অবজেক্টটি নোডে একত্রিত হয়; শুধুমাত্র একটি যেমন Ipv4L3 প্রোটোকল আছে
বস্তু Ipv4L3Protocol এ পাঠানোর জন্য একটি প্যাকেট আছে এমন উচ্চ স্তরের প্রোটোকল
বস্তু কল করতে পারেন GetObject () একটি পয়েন্টার পেতে, নিম্নরূপ:

Ptr ipv4 = m_node->GetObject ();
যদি (ipv4 != 0)
{
ipv4->পাঠান (প্যাকেট, সদর, দাদর, PROT_NUMBER);
}

এই শ্রেণীটি আমরা শোষণ করি এমন দুটি কৌশল চমৎকারভাবে প্রদর্শন করে ns-3 বস্তুকে একত্রে আবদ্ধ করতে:
কলব্যাক, এবং অবজেক্ট এগ্রিগেশন।

একবার IPv4 রাউটিং নির্ধারণ করে যে একটি প্যাকেট স্থানীয় নোডের জন্য, এটি এটিকে এগিয়ে দেয়
স্ট্যাক এটি নিম্নলিখিত ফাংশন দিয়ে করা হয়:

অকার্যকর
Ipv4L3Protocol::LocalDeliver (Ptr প্যাকেট, Ipv4 Header const&ip, uint32_t iif)

প্রথম ধাপ হল আইপি প্রোটোকল নম্বরের উপর ভিত্তি করে সঠিক Ipv4L4Protocol অবজেক্ট খুঁজে বের করা।
উদাহরণস্বরূপ, টিসিপি ডেমুক্সে প্রোটোকল নম্বর 6 হিসাবে নিবন্ধিত হয়েছে। অবশেষে, গ্রহণ ()
Ipv4L4Protocol এ ফাংশন (যেমন TcpL4Protocol::রিসিভ বলা হয়.

আমরা এখনও ক্লাস Ipv4 ইন্টারফেস চালু করিনি। মূলত, প্রতিটি NetDevice জোড়া হয়
এই ধরনের ডিভাইসের একটি IPv4 উপস্থাপনা সহ। লিনাক্সে, এই ক্লাস আইপিভি 4 ইন্টারফেস মোটামুটিভাবে
থেকে অনুরূপ struct হয় ইন_ডিভাইস; প্রধান উদ্দেশ্য ঠিকানা-পরিবার প্রদান করা হয়
একটি ইন্টারফেস সম্পর্কে নির্দিষ্ট তথ্য (ঠিকানা)।

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

Config::SetDefault ("ns3::ArpCache::PendingQueueSize", UintegerValue (MAX_BURST_SIZE/L2MTU*3));

IPv6 বাস্তবায়ন অনুরূপ আর্কিটেকচার অনুসরণ করে। ডুয়াল-স্ট্যাকড নোড (একটি সহ
IPv4 এবং IPv6 উভয়ের জন্য সমর্থন) একটি IPv6 সকেটকে একটি হিসাবে IPv4 সংযোগ গ্রহণ করার অনুমতি দেবে
স্ট্যান্ডার্ড ডুয়াল-স্ট্যাকড সিস্টেম করে। একটি সকেট আবদ্ধ এবং একটি IPv6 এন্ডপয়েন্ট শুনতে পারে
একটি IPv4 সংযোগ পাবেন এবং একটি IPv4-ম্যাপ করা ঠিকানা হিসাবে দূরবর্তী ঠিকানা ফিরিয়ে দেবে।
IPV6_V6ONLY সকেট বিকল্পের জন্য সমর্থন বর্তমানে বিদ্যমান নেই।

লেয়ার -4 প্রোটোকল এবং সকেট
আমরা পরবর্তীতে বর্ণনা করি কিভাবে ট্রান্সপোর্ট প্রোটোকল, সকেট এবং অ্যাপ্লিকেশনগুলি একসাথে বাঁধে। ভিতরে
সারাংশ, প্রতিটি পরিবহন প্রোটোকল বাস্তবায়ন একটি সকেট কারখানা। একটি অ্যাপ্লিকেশন যে
একটি নতুন সকেট প্রয়োজন

উদাহরণস্বরূপ, একটি UDP সকেট তৈরি করতে, একটি অ্যাপ্লিকেশন একটি কোড স্নিপেট ব্যবহার করবে যেমন
নিম্নলিখিত:

Ptr udpSocketFactory = GetNode ()->GetObject ();
Ptr m_socket = socketFactory->CreateSocket ();
m_socket->Bind (m_local_address);
...

উপরেরটি তার UDP সকেট ফ্যাক্টরিতে একটি পয়েন্টার পেতে নোডকে জিজ্ঞাসা করবে, একটি তৈরি করবে
যেমন সকেট, এবং C-ভিত্তিক সকেট API এর অনুরূপ API সহ সকেট ব্যবহার করবে, যেমন
as সংযোগ করা () এবং সেন্ড (). ঠিকানা পাস বাঁধাই করা (), সংযোগ করা (), বা সেন্ড ()
ফাংশন একটি হতে পারে Ipv4 ঠিকানা, Ipv6 ঠিকানা, বা ঠিকানা। যদি একটি ঠিকানা মধ্যে পাস করা হয় এবং
একটি ছাড়া অন্য কিছু রয়েছে Ipv4 ঠিকানা or Ipv6 ঠিকানা, এই ফাংশন একটি ফেরত দেবে
ত্রুটি. দ্য বাঁধাই করা (অকার্যকর) এবং বাইন্ড 6 (অকার্যকর) ফাংশনগুলি "0.0.0.0" এবং "::" এর সাথে সংযুক্ত থাকে
যথাক্রমে.

সকেট একটি নির্দিষ্ট NetDevice যদিও আবদ্ধ হতে পারে BindToNetDevice
(Ptr নেট ডিভাইস) ফাংশন. BindToNetDevice (Ptr নেট ডিভাইস) বাঁধা হবে
সকেট "0.0.0.0" এবং "::" (কলিংয়ের সমতুল্য বাঁধাই করা () এবং বাইন্ড 6 (), যদি না
সকেট ইতিমধ্যে একটি নির্দিষ্ট ঠিকানায় আবদ্ধ হয়েছে। সারসংক্ষেপ, সঠিক ক্রম
হল:

Ptr udpSocketFactory = GetNode ()->GetObject ();
Ptr m_socket = socketFactory->CreateSocket ();
m_socket->BindToNetDevice (n_netDevice);
...

বা:

Ptr udpSocketFactory = GetNode ()->GetObject ();
Ptr m_socket = socketFactory->CreateSocket ();
m_socket->Bind (m_local_address);
m_socket->BindToNetDevice (n_netDevice);
...

নিম্নলিখিত একটি ত্রুটি উত্থাপন করে:

Ptr udpSocketFactory = GetNode ()->GetObject ();
Ptr m_socket = socketFactory->CreateSocket ();
m_socket->BindToNetDevice (n_netDevice);
m_socket->Bind (m_local_address);
...

অধ্যায় দেখুন ns-3 আরো তথ্যের জন্য সকেট.

আমরা এখন পর্যন্ত একটি সকেট কারখানা বর্ণনা করেছি (যেমন শ্রেণী ইউডিপি) এবং একটি সকেট, যা হতে পারে
বিশেষায়িত (যেমন, শ্রেণী UdpSocket) এর সাথে সম্পর্কিত আরও কয়েকটি মূল বস্তু রয়েছে
এক বা একাধিক রিসিভিং সকেটে একটি প্যাকেট ডিমাল্টিপ্লেক্স করার বিশেষ কাজ। চাবি
এই কাজের অবজেক্ট হল ক্লাস Ipv4EndPointDemux. এই demultiplexer এর বস্তু সংরক্ষণ করে
শ্রেণী Ipv4EndPoint. এই ক্লাসটি অ্যাড্রেসিং/পোর্ট টিপল (স্থানীয় পোর্ট, স্থানীয়
ঠিকানা, গন্তব্য পোর্ট, গন্তব্য ঠিকানা) সকেটের সাথে যুক্ত এবং একটি রিসিভ
কলব্যাক এই রিসিভ কলব্যাকে সকেট দ্বারা নিবন্ধিত একটি রিসিভ ফাংশন রয়েছে। দ্য
লুকআপ () Ipv4EndPointDemux-এ ফাংশন Ipv4EndPoint অবজেক্টের একটি তালিকা প্রদান করে (সেখানে থাকতে পারে
একটি তালিকা হতে পারে কারণ একাধিক সকেট প্যাকেটের সাথে মেলে)। লেয়ার-৪ প্রোটোকল কপি করে
প্রতিটি Ipv4EndPoint-এ প্যাকেট এবং কল করে ফরোয়ার্ডআপ () পদ্ধতি, যা তারপর কল করে
নিন () সকেট দ্বারা নিবন্ধিত ফাংশন।

বাস্তব সিস্টেমে সকেট API এর সাথে কাজ করার সময় একটি সমস্যা দেখা দেয়
কিছু ধরণের I/O ব্যবহার করে একটি সকেট থেকে রিডিং পরিচালনা করুন (যেমন, ব্লক করা, নন-ব্লকিং,
অ্যাসিঙ্ক্রোনাস, ...)। ns-3 সকেট I/O-এর জন্য একটি অ্যাসিঙ্ক্রোনাস মডেল প্রয়োগ করে; দরখাস্ত
পাঠ করার জন্য প্রস্তুত প্রাপ্ত ডেটা সম্পর্কে অবহিত করার জন্য একটি কলব্যাক সেট করে এবং কলব্যাক হল
ডেটা উপলব্ধ হলে পরিবহন প্রোটোকল দ্বারা আহ্বান করা হয়। এই কলব্যাক হিসাবে নির্দিষ্ট করা হয়েছে
অনুসরণ:

void Socket::SetRecvCallback (কলব্যাক ,
Ptr ,
const ঠিকানা&> প্রাপ্ত ডেটা);

প্রাপ্ত ডেটা প্যাকেট ডেটা বাফারে পৌঁছে দেওয়া হয়। একটি উদাহরণ ব্যবহার করা হয়
শ্রেণী প্যাকেটসিঙ্ক:

m_socket->SetRecvCallback (MakeCallback(&PacketSink::HandleRead, this));

সংক্ষেপে, অভ্যন্তরীণভাবে, UDP বাস্তবায়ন নিম্নরূপ সংগঠিত হয়:

· ক UdpImpl ক্লাস যা UDP সকেট ফ্যাক্টরি কার্যকারিতা প্রয়োগ করে

· ক UdpL4 প্রোটোকল ক্লাস যে প্রোটোকল লজিক প্রয়োগ করে যা সকেট-স্বাধীন

· ক UdpSocketImpl ক্লাস যা UDP-এর সকেট-নির্দিষ্ট দিকগুলি প্রয়োগ করে

· একটি ক্লাস বলা হয় Ipv4EndPoint যেটি অ্যাড্রেসিং টিপল সংরক্ষণ করে (স্থানীয় পোর্ট, স্থানীয় ঠিকানা,
গন্তব্য পোর্ট, গন্তব্য ঠিকানা) সকেটের সাথে যুক্ত এবং একটি রিসিভ
সকেটের জন্য কলব্যাক।

আইপি-সক্ষম নোড ইন্টারফেসগুলি
আইপি-সক্ষম নোডের অনেকগুলি বাস্তবায়নের বিশদ, বা অভ্যন্তরীণ বস্তু নিজেই
সিমুলেটর পাবলিক API এ অবজেক্টগুলি প্রকাশ করা হয় না। এই বিভিন্ন জন্য অনুমতি দেয়
বাস্তবায়ন; উদাহরণস্বরূপ, নেটিভ প্রতিস্থাপন ns-3 পোর্টেড TCP/IP স্ট্যাক সহ মডেল
কোড।

এই সমস্ত অবজেক্টের C++ পাবলিক API-এ পাওয়া যায় src/নেটওয়ার্ক ডিরেক্টরি,
প্রধানত সহ:

· ঠিকানা

· socket.h

· node.h

· packet.h

এগুলি সাধারণত বেস ক্লাস অবজেক্ট যা তে ব্যবহৃত ডিফল্ট মানগুলি বাস্তবায়ন করে
বাস্তবায়ন, স্টেট ভেরিয়েবল, হোস্ট অ্যাট্রিবিউট এবং পেতে/সেট করার জন্য অ্যাক্সেসের পদ্ধতিগুলি প্রয়োগ করুন
যেমন ক্লায়েন্টদের কাছে প্রকাশ করা সর্বজনীনভাবে-উপলভ্য পদ্ধতিগুলি প্রয়োগ করুন সকেট তৈরি করুন.

উদাহরণ পথ of a মোড়ক
এই দুটি পরিসংখ্যান একটি উদাহরণ স্ট্যাক ট্রেস দেখায় কিভাবে প্যাকেট ইন্টারনেটের মাধ্যমে প্রবাহিত হয়
নোড অবজেক্ট।
[ছবি] একটি প্যাকেটের পথ পাঠান..UNINDENT
[ছবি] একটি প্যাকেটের পথ গ্রহণ করুন..UNINDENT

IPv4
প্লেসহোল্ডার অধ্যায়

IPv6
এই অধ্যায় বর্ণনা ns-3 আইপিভি 6 মডেলের ক্ষমতা এবং সীমাবদ্ধতা তার সাথে
ব্যবহার এবং উদাহরণ।

IPv6 মডেল বিবরণ
IPv6 মডেলটি লিনাক্স বাস্তবায়নের পরে ঢিলেঢালাভাবে প্যাটার্ন করা হয়েছে; বাস্তবায়ন হয়
IPv6 এর কিছু বৈশিষ্ট্য সিমুলেশন স্টাডিতে খুব বেশি আগ্রহী নয় বলে সম্পূর্ণ নয়, এবং
IPv6 এর কিছু বৈশিষ্ট্য এখনও মডেল করা হয়নি ns-3.

বেস ক্লাস আইপিভি৪ একটি জেনেরিক API সংজ্ঞায়িত করে, যখন ক্লাস Ipv6L3 প্রোটোকল আসল
প্রোটোকল বাস্তবায়নকারী শ্রেণী। IPv6 স্ট্যাক দ্বারা ব্যবহৃত প্রকৃত ক্লাসগুলি অবস্থিত
প্রধানত ডিরেক্টরিতে এসআরসি/ইন্টারনেট.

IPv6 এর বাস্তবায়ন নিম্নলিখিত ফাইলগুলিতে রয়েছে:

src/internet/model/icmpv6-হেডার৷cc,h}
src/internet/model/icmpv6-l4-protocol।{cc,h}
src/internet/model/ipv6.{cc,h}
src/internet/model/ipv6-address-generator৷cc,h}
src/internet/model/ipv6-autoconfigured-prefix.{cc,h}
src/internet/model/ipv6-end-point.{cc,h}
src/internet/model/ipv6-end-point-demux৷cc,h}
src/internet/model/ipv6-extension৷cc,h}
src/internet/model/ipv6-extension-demux৷cc,h}
src/internet/model/ipv6-এক্সটেনশন-হেডার৷cc,h}
src/internet/model/ipv6-header৷cc,h}
src/internet/model/ipv6-interface.{cc,h}
src/internet/model/ipv6-interface-address.{cc,h}
src/internet/model/ipv6-l3-protocol।{cc,h}
src/internet/model/ipv6-list-routing৷cc,h}
src/internet/model/ipv6-option৷cc,h}
src/internet/model/ipv6-option-demux৷cc,h}
src/internet/model/ipv6-option-header৷cc,h}
src/internet/model/ipv6-packet-info-tag.{cc,h}
src/internet/model/ipv6-pmtu-cache।{cc,h}
src/internet/model/ipv6-raw-socket-factory.{cc,h}
src/internet/model/ipv6-raw-socket-factory-impl.{cc,h}
src/internet/model/ipv6-raw-socket-impl৷cc,h}
src/internet/model/ipv6-route.{cc,h}
src/internet/model/ipv6-routing-protocol।{cc,h}
src/internet/model/ipv6-routing-table-entry.{cc,h}
src/internet/model/ipv6-static-routing.{cc,h}
src/internet/model/ndisc-cache।{cc,h}
src/network/utils/inet6-সকেট-ঠিকানা। cc,h}
src/network/utils/ipv6-address.{cc,h}

এছাড়াও কিছু সাহায্যকারী IPv6 এর সাথে জড়িত:

src/internet/helper/internet-stack-helper।{cc,h}
src/internet/helper/ipv6-address-helper.{cc,h}
src/internet/helper/ipv6-interface-container৷cc,h}
src/internet/helper/ipv6-list-routing-helper.{cc,h}
src/internet/helper/ipv6-routing-helper.{cc,h}
src/internet/helper/ipv6-static-routing-helper।{cc,h}

মডেল ফাইল মোটামুটি ভাগ করা যেতে পারে:

· প্রোটোকল মডেল (যেমন, ipv6, ipv6-l3-protocol, icmpv6-l4-প্রোটোকল, ইত্যাদি)

· রাউটিং মডেল (অর্থাৎ, এর নামে 'রাউটিং' সহ যেকোনো কিছু)

· সকেট এবং ইন্টারফেস (যেমন, ipv6-raw-socket, ipv6-interface, ipv6-end-point, ইত্যাদি)

· ঠিকানা সম্পর্কিত জিনিস

হেডার, অপশন হেডার, এক্সটেনশন হেডার ইত্যাদি

· আনুষঙ্গিক ক্লাস (যেমন, ndisc-ক্যাশে)

ব্যবহার
নিম্নলিখিত বিবরণ উদাহরণ কোডে পাওয়া সাধারণ সাহায্যকারী ব্যবহার করার উপর ভিত্তি করে।

IPv6 একটি নোডে সক্রিয় করার প্রয়োজন নেই। এটি স্বয়ংক্রিয়ভাবে উপলব্ধ যোগ করা হয়
ইন্টারনেট স্ট্যাক ইনস্টল হয়ে গেলে প্রোটোকল।

করার জন্য না IPv6 সহ IPv4 ইনস্টল করুন, এটি ব্যবহার করা সম্ভব
ns3::InternetStackHelper পদ্ধতি SetIpv6StackInstall (বুল সক্ষম করুন) ইনস্টল করার আগে
নোডগুলিতে ইন্টারনেটস্ট্যাক।

মনে রাখবেন যে একটি IPv6-শুধু নেটওয়ার্ক থাকতে (অর্থাৎ, একটি নোডে IPv4 স্ট্যাক ইনস্টল না করা)
ব্যবহার করা উচিত ns3::InternetStackHelper পদ্ধতি SetIpv4StackInstall (বুল সক্ষম করুন) পূর্বে
স্ট্যাক ইনস্টলেশন।

উদাহরণ হিসাবে, নিম্নলিখিত কোড নোডে 0 তে IPv4 এবং IPv6 উভয়ই থাকবে, শুধুমাত্র নোড 1-এ
IPv6 এবং নোড 2 শুধুমাত্র IPv4:

নোডকন্টেইনার n;
n. তৈরি করা (3);

InternetStackHelper ইন্টারনেট;
InternetStackHelper internetV4only;
InternetStackHelper internetV6only;

internetV4only.SetIpv6StackInstall (মিথ্যা);
internetV6only.SetIpv4StackInstall (মিথ্যা);

internet.Install (n.Get (0));
internetV6only.Install (n.Get (1));
internetV4only.Install (n.Get (2));

IPv6 ঠিকানাগুলি নিয়োগ
একটি নেটওয়ার্কে IPv6 ব্যবহার করার জন্য, প্রথমে যা করতে হবে তা হল IPv6 ঠিকানা বরাদ্দ করা।

যেকোনো IPv6-সক্ষম ns-3 নোডে অন্তত একটি NetDevice থাকবে: ns3::লুপব্যাকনেটডিভাইস.
লুপব্যাক ডিভাইস ঠিকানা হয় :: ১. অন্য সব NetDevice-এ এক বা একাধিক IPv6 থাকবে
ঠিকানা:

· একটি লিঙ্ক-স্থানীয় ঠিকানা: fe80::ইন্টারফেস ID, কোথায় ইন্টারফেস ID থেকে প্রাপ্ত
NetDevice MAC ঠিকানা।

· শূন্য বা তার বেশি বিশ্বব্যাপী ঠিকানা, যেমন, 2001: db8 :: 1.

সাধারণত একটি ইন্টারফেসের প্রথম ঠিকানা হবে লিংক-স্থানীয়, বিশ্বব্যাপী
ঠিকানা(গুলি) হল নিম্নলিখিতগুলি।

IPv6 বিশ্বব্যাপী ঠিকানা হতে পারে:

· ম্যানুয়ালি বরাদ্দ করা হয়েছে

· স্বয়ংক্রিয়ভাবে তৈরি

ns-3 উভয় পদ্ধতি ব্যবহার করতে পারেন, এবং এর প্রভাব বোঝা বেশ গুরুত্বপূর্ণ
উভয়।

ম্যানুয়ালি নির্ধারিত IPv6 ঠিকানা
এটি সম্ভবত সবচেয়ে সহজ এবং সবচেয়ে ব্যবহৃত পদ্ধতি। একটি উদাহরণ হিসাবে:

Ptr n0 = CreateObject ();
Ptr n1 = CreateObject ();
NodeContainer নেট (n0, n1);
CsmaHelper csma;
NetDeviceContainer ndc = csma.Install (net);

NS_LOG_INFO ("IPv6 ঠিকানা বরাদ্দ করুন।");
Ipv6AddressHelper ipv6;
ipv6.SetBase (Ipv6Address ("2001:db8::"), Ipv6Prefix (64));
Ipv6InterfaceContainer ic = ipv6.Assign (ndc);

এই পদ্ধতিটি নোডগুলিতে দুটি বিশ্বব্যাপী IPv6 ঠিকানা যোগ করবে। মনে রাখবেন, IPv6 এর জন্য যথারীতি,
সমস্ত নোডের একটি লিঙ্ক-স্থানীয় ঠিকানাও থাকবে। সাধারণত একটি প্রথম ঠিকানা
ইন্টারফেস হবে লিংক-লোকাল, যার গ্লোবাল অ্যাড্রেস(গুলি) নিম্নোক্ত হবে
বেশী.

উল্লেখ্য যে গ্লোবাল অ্যাডেসেসগুলি MAC ঠিকানা থেকে নেওয়া হবে। এর ফলে,
অনুরূপ ঠিকানা আছে আশা 2001:db8::200:ff:fe00:1.

একটি নোডে একাধিক বিশ্বব্যাপী ঠিকানা বরাদ্দ করতে উপরেরটি পুনরাবৃত্তি করা সম্ভব।
যাইহোক, কারণে IPv6AddressHelper singleton প্রকৃতি, এক প্রথম সব বরাদ্দ করা উচিত
একটি নেটওয়ার্কের ঠিকানা, তারপর নেটওয়ার্ক বেস পরিবর্তন করুন (সেটবেস), তারপর একটি নতুন অ্যাসাইনমেন্ট করুন।

বিকল্পভাবে, একটি নোডে একটি নির্দিষ্ট ঠিকানা বরাদ্দ করা সম্ভব:

Ptr n0 = CreateObject ();
NodeContainer নেট (n0);
CsmaHelper csma;
NetDeviceContainer ndc = csma.Install (net);

NS_LOG_INFO ("বিশেষভাবে একটি IPv6 ঠিকানা বরাদ্দ করুন।");
Ipv6AddressHelper ipv6;
Ptr ডিভাইস = ndc.Get (0);
Ptr নোড = ডিভাইস->গেটনোড ();
Ptr ipv6proto = নোড->গেটঅবজেক্ট ();
int32_t ifIndex = 0;
ifIndex = ipv6proto->GetInterfaceForDevice (ডিভাইস);
Ipv6InterfaceAddress ipv6Addr = Ipv6InterfaceAddress (Ipv6Address ("2001:db8:f00d:cafe::42"), Ipv6Prefix (64));
ipv6proto->AddAddress (ifIndex, ipv6Addr);

স্বতঃ উত্পাদিত IPv6 ঠিকানা
এটি ক্লাস দ্বারা বাস্তবায়িত RADVD প্রোটোকলের উপর নির্ভর করে সম্পন্ন করা হয় Radvd. এ
এই অ্যাপ্লিকেশনের জন্য কোন সাহায্যকারী নেই, এবং ব্যবহার বরং কঠিন (দেখুন
উদাহরণ/ipv6/radvd.cc).

এই পদ্ধতিটি ব্যবহার করার পরে, নোডগুলি গতিশীলভাবে অর্জন করবে (অর্থাৎ, সিমুলেশনের সময়)
RADVD কনফিগারেশন অনুযায়ী এক (বা একাধিক) বিশ্বব্যাপী ঠিকানা(গুলি)। এই ঠিকানা
RADVD ঘোষিত উপসর্গ এবং নোডের EUI-64 এর ভিত্তি হবে।

এলোমেলো-উৎপন্ন IPv6 ঠিকানা
যদিও IPv6 বাস্তব নোডগুলি গোপনীয়তা রক্ষা করার জন্য এলোমেলোভাবে তৈরি করা ঠিকানাগুলি ব্যবহার করবে, ns-3 না
এই ক্ষমতা নেই. এই বৈশিষ্ট্যটি এখন পর্যন্ত আকর্ষণীয় হিসাবে বিবেচিত হয়নি
সিমুলেশন।

নকল ঠিকানা সনাক্তকরণ (ডিএডি)
নোডগুলি DAD সঞ্চালন করবে (এটি একটি ব্যবহার করে নিষ্ক্রিয় করা যেতে পারে Icmpv6L4 প্রোটোকল বৈশিষ্ট্য)। উপর
একটি DAD প্রাপ্তি, যাইহোক, নোড এটি প্রতিক্রিয়া করবে না. যেমন: DAD প্রতিক্রিয়া অসম্পূর্ণ তাই
দূরে প্রধান কারণ অনুপস্থিত র্যান্ডম-উত্পন্ন ঠিকানা ক্ষমতার উপর নির্ভর করে। তাছাড়া,
থেকে ns-3 নোডগুলি সাধারণত ভাল আচরণ করবে, সেখানে কোনও ডুপ্লিকেট ঠিকানা থাকা উচিত নয়।
এটি ভবিষ্যতে পরিবর্তিত হতে পারে, যাতে বাস্তব-বিশ্ব সমন্বিত সমস্যাগুলি এড়ানো যায়
সিমুলেশন

নিমন্ত্রণকর্তা এবং রাউটার আচরণ in IPv6 এবং ns-3
IPv6 এর মধ্যে একটি স্পষ্ট পার্থক্য রয়েছে রাউটার এবং হোস্ট. যেমন কেউ আশা করতে পারে,
রাউটার একটি ইন্টারফেস থেকে অন্য ইন্টারফেসে প্যাকেট ফরোয়ার্ড করতে পারে, যখন হোস্ট ড্রপ করে
প্যাকেট তাদের নির্দেশিত না.

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

In ns-3 একটি নোড একটি হতে কনফিগার করা হয় নিমন্ত্রণকর্তা গতানুগতিক. পরিবর্তন করার দুটি প্রধান উপায় আছে
এই আচরণ:

· ব্যবহার ns3::Ipv6 ইন্টারফেস কন্টেইনার সেটফরওয়ার্ডিং(uint32_t i, bool, রাউটার) কোথায় i হয়
পাত্রে ইন্টারফেস সূচক।

· পরিবর্তন করা ns3::Ipv6 গুণ আইপিফরওয়ার্ড.

সিমুলেশনের সময় যে কোনো একটি ব্যবহার করা যেতে পারে।

একটি সূক্ষ্ম দানাদার সেটআপ ব্যবহার করে সম্পন্ন করা যেতে পারে ns3::Ipv6 ইন্টারফেস সেটফরওয়ার্ডিং (বুল
এগিয়ে); যা প্রতি-ইন্টারফেস-ভিত্তিক আচরণ পরিবর্তন করতে দেয়।

নোট করুন যে নোড-ওয়াইড কনফিগারেশন শুধুমাত্র সক্রিয়/অক্ষম করার জন্য একটি সুবিধাজনক পদ্ধতি হিসাবে কাজ করে
দ্য ns3::Ipv6 ইন্টারফেস নির্দিষ্ট সেটিং। একটি Ipv6 ইন্টারফেস ফরওয়ার্ডিং সহ একটি নোডে যোগ করা হয়েছে
সক্রিয় হিসাবে ফরওয়ার্ড করা সেট করা হবে. এটা সত্যিই গুরুত্বপূর্ণ যখন একটি নোড আছে
সিমুলেশনের সময় ইন্টারফেস যোগ করা হয়েছে।

অনুযায়ী ns3::Ipv6 ইন্টারফেস ফরওয়ার্ডিং অবস্থা, নিম্নলিখিত ঘটে:

· ফরওয়ার্ডিং বন্ধ

· নোড রাউটার সলিসিটেশনের উত্তর দেবে না

· নোড রাউটারের বিজ্ঞাপনে প্রতিক্রিয়া জানাবে

· নোড পর্যায়ক্রমে রাউটার সলিসিটেশন পাঠাবে

· রাউটিং প্রোটোকল অবশ্যই নোডের দিকে নির্দেশিত না হওয়া প্যাকেটগুলি বাদ দিতে হবে

· ফরওয়ার্ডিং চালু

· নোড রাউটার সলিসিটেশনের উত্তর দেবে

· নোড রাউটারের বিজ্ঞাপনে প্রতিক্রিয়া জানাবে না

· নোড রাউটার সলিসিটেশন পাঠাবে না

· রাউটিং প্রোটোকল অবশ্যই প্যাকেট ফরোয়ার্ড করতে হবে

আচরণটি ip-sysctl.txt-এর সাথে মিলে যাচ্ছে (-
http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt) পার্থক্য যে
গুপ্ত সেটিংস ব্যবহার করে আচরণকে ওভাররাইড করা সম্ভব নয় (যেমন, ফরওয়ার্ডিং কিন্তু
রাউটারের বিজ্ঞাপন গ্রহণ করুন, accept_ra=2, অথবা ফরওয়ার্ডিং করুন কিন্তু রাউটার সলিসিটেশন পাঠান
ফরওয়ার্ডিং=2)।

সাবধানে প্যাকেট ফরওয়ার্ডিং এর প্রভাব বিবেচনা করুন. একটি উদাহরণ হিসাবে, একটি নোড হবে না
ICMPv6 PACKET_TOO_BIG বার্তা পাঠান একটি ইন্টারফেস থেকে ফ্রোওয়ার্ডিং অফ সহ। এই
সম্পূর্ণ স্বাভাবিক, যেহেতু রাউটিং প্রোটোকল চেষ্টা করার আগে প্যাকেটটি ফেলে দেবে
সামনের দিকে অগ্রবর্তী কর.

সাহায্যকারী
সাধারণত IPv6 সেটআপে ব্যবহৃত সাহায্যকারীগুলি হল:

· ns3::InternetStackHelper

· ns3::Ipv6AddressHelper

· ns3::Ipv6 ইন্টারফেস কন্টেইনার

ব্যবহারটি সংশ্লিষ্ট IPv4 ক্ষেত্রে প্রায় অভিন্ন, যেমন:

নোডকন্টেইনার n;
n. তৈরি করা (4);

NS_LOG_INFO ("IPv6 ইন্টারনেট স্ট্যাক তৈরি করুন");
InternetStackHelper internetv6;
internetv6.Install (n);

NS_LOG_INFO ("চ্যানেল তৈরি করুন।");
CsmaHelper csma;
NetDeviceContainer d = csma.Install (n);

NS_LOG_INFO ("নেটওয়ার্ক তৈরি করুন এবং IPv6 ঠিকানা বরাদ্দ করুন।");
Ipv6AddressHelper ipv6;
ipv6.SetBase (Ipv6Address ("2001:db8::"), Ipv6Prefix (64));
Ipv6InterfaceContainer iic = ipv6.Assign (d);

উপরন্তু, একটি সাধারণ কাজ হল নোডগুলির একটিতে ফরওয়ার্ডিং সক্ষম করা এবং একটি সেটআপ করা
অন্যান্য নোডগুলিতে এটির দিকে ডিফল্ট রুট, যেমন:

iic.SetForwarding (0, সত্য);
iic.SetDefaultRouteInAllNodes (0);

এটি নোডে ফরওয়ার্ডিং সক্ষম করবে 0 এবং একটি ডিফল্ট রুট সেটআপ করবে
ns3::Ipv6 স্ট্যাটিক রাউটিং অন্য সব নোডের উপর। মনে রাখবেন যে এই যে প্রয়োজন
Ipv6StaticRouting নোডগুলিতে উপস্থিত রয়েছে।

IPv6 রাউটিং সাহায্যকারীরা ব্যবহারকারীকে নির্দিষ্ট কিছু কাজ করতে সক্ষম করে
রাউটিং অ্যালগরিদ এবং রাউটিং টেবিল প্রিন্ট করতে।

আরোপ করা
অনেক ক্লাস ns-3 IPv6 বাস্তবায়নে বৈশিষ্ট্য রয়েছে। সবচেয়ে দরকারী হল:

· ns3::Ipv6

· আইপিফরওয়ার্ড, বুলিয়ান, ডিফল্ট মিথ্যা। বিশ্বব্যাপী সকলের জন্য আইপি ফরওয়ার্ডিং সক্ষম বা অক্ষম করুন
বর্তমান এবং ভবিষ্যতের IPv6 ডিভাইস।

· MtuDiscover, বুলিয়ান, ডিফল্ট সত্য। অক্ষম করা হলে, প্রতিটি ইন্টারফেসের MTU থাকবে
1280 বাইট সেট করুন।

· ns3::Ipv6L3 প্রোটোকল

· DefaultTtl, uint8_t, ডিফল্ট 64. সমস্ত বহির্গামী প্যাকেটে ডিফল্টরূপে TTL মান সেট করা হয়
এই নোড উপর উত্পন্ন.

· SendIcmpv6 পুনঃনির্দেশ, বুলিয়ান, ডিফল্ট সত্য। উপযুক্ত হলে ICMPv6 পুনঃনির্দেশ পাঠান।

· ns3::ICmpv6L4Protocol

· ডিএডি, বুলিয়ান, ডিফল্ট সত্য। সবসময় DAD (ডুপ্লিকেট অ্যাড্রেস ডিটেকশন) চেক করুন।

· ns3::NdiscCache

· অমীমাংসিত কিউ সাইজ, uint32_t, ডিফল্ট 3. একটি NA মুলতুবি থাকা প্যাকেটগুলির জন্য সারির আকার
উত্তর

আউটপুট
IPv6 স্ট্যাক কিছু দরকারী ট্রেস উত্স প্রদান করে:

· ns3::Ipv6L3 প্রোটোকল

· Tx, আউটগোয়িং ইন্টারফেসে IPv6 প্যাকেট পাঠান।

· Rx, ইনকামিং ইন্টারফেস থেকে IPv6 প্যাকেট গ্রহণ করুন।

· ড্রপ, IPv6 প্যাকেট ড্রপ করুন।

· ns3::Ipv6 এক্সটেনশন

· ড্রপ, IPv6 প্যাকেট ড্রপ করুন।

সর্বশেষ ট্রেস সোর্স তৈরি হয় যখন একটি প্যাকেটে একটি অজানা বিকল্প থাকে যা ব্লক করে
প্রক্রিয়াকরণ।

মন যে ns3::NdiscCache পাশাপাশি প্যাকেট ড্রপ করতে পারে, এবং তারা একটি ট্রেস লগ ইন করা হয় না
উৎস (এখনও)। এটি প্রেরিত/প্রাপ্ত প্যাকেট কাউন্টারে কিছু বিভ্রান্তি তৈরি করতে পারে।

অগ্রসর ব্যবহার
IPv6 সর্বাধিক সংক্রমণ একক (MTU) এবং টুকরা টুকরা করা
ns-3 NetDevices L2 সিমুলেটেড ডিভাইস অনুযায়ী MTU সংজ্ঞায়িত করে। IPv6 এর প্রয়োজন
ন্যূনতম MTU হল 1280 বাইট, তাই সমস্ত NetDevicesকে অন্তত এটি সমর্থন করতে হবে
এমটিইউ। এই লিঙ্ক-MTU.

উৎস-গন্তব্য পথে বিভিন্ন MTU-কে সমর্থন করার জন্য, ns-3 IPv6 মডেল করতে পারেন
ফ্র্যাগমেন্টেশন সঞ্চালন। এর থেকে বড় একটি প্যাকেট পেয়ে এটি ট্রিগার করা যেতে পারে
L4 প্রোটোকল (UDP, TCP, ইত্যাদি) থেকে লিঙ্ক-MTU, অথবা একটি ICMPv6 PACKET_TOO_BIG পেয়ে
বার্তা মডেলটি RFC 1981 অনুকরণ করে, নিম্নলিখিত উল্লেখযোগ্য ব্যতিক্রমগুলি সহ:

· L4 প্রোটোকল পাথ MTU পরিবর্তন সম্পর্কে অবহিত করা হয় না

· TCP পাথ-MTU অনুযায়ী তার সেগমেন্টের আকার পরিবর্তন করতে পারে না।

যথাসময়ে উভয় সীমাবদ্ধতা দূর হবে।

Path-MTU ক্যাশে বর্তমানে উৎস-গন্তব্য IPv6 ঠিকানার উপর ভিত্তি করে। আরও
শ্রেণীবিভাগ (যেমন, ফ্লো লেবেল) সম্ভব কিন্তু এখনও বাস্তবায়িত হয়নি।

Path-MTU ডিফল্ট বৈধতা সময় 10 মিনিট। ক্যাশে এন্ট্রির মেয়াদ শেষ হওয়ার পরে,
পাথ-এমটিইউ তথ্য সরানো হয়েছে এবং পরবর্তী প্যাকেটটি (অবশেষে) একটি নতুন ICMPv6 ট্রিগার করবে
PACKET_TOO_BIG বার্তা। নোট করুন যে 1) এটি RFC স্পেসিফিকেশনের সাথে সামঞ্জস্যপূর্ণ এবং 2)
L4 প্রোটোকল প্যাকেটগুলি পুনরায় প্রেরণের জন্য দায়ী।

উদাহরণ
IPv6 এর উদাহরণগুলি ডিরেক্টরিতে রয়েছে উদাহরণ/ipv6. এই উদাহরণ সবচেয়ে ফোকাস
আকর্ষণীয় IPv6 বিশেষত্ব, যেমন ফ্র্যাগমেন্টেশন, রিডাইরেক্ট ইত্যাদি।

অধিকন্তু, বেশিরভাগ TCP এবং UDP উদাহরণ এখানে অবস্থিত উদাহরণ/ইউডিপি, উদাহরণ/টিসিপি, ইত্যাদি আছে একটি
IPv6 এর পরিবর্তে IPv4 ব্যবহার করার জন্য কমান্ড-লাইন বিকল্প।

সমস্যা সমাধান
ব্যবহার করার সময় এড়ানোর জন্য মাত্র কয়েকটি ত্রুটি রয়েছে ns-3 আইপিভি 6।

প্রমাথী লুপ
যেহেতু IPv6 এর জন্য উপলব্ধ একমাত্র (এখন পর্যন্ত) রাউটিং স্কিম ns3::Ipv6 স্ট্যাটিক রাউটিং,
ডিফল্ট রাউটার ম্যানুয়ালি সেটআপ করতে হবে। যখন একটি নেটওয়ার্কে দুই বা ততোধিক রাউটার থাকে
(যেমন, নোড এ এবং নোড বি), হেল্পার ফাংশন ব্যবহার করা এড়িয়ে চলুন সেটডিফল্টরুটইনঅলনোডস উন্নত
একাধিক রাউটার।

পরিণতি হবে A-তে B-এ একটি ডিফল্ট রুট ইনস্টল করা এবং একটি ডিফল্ট রুট নির্দেশ করা
B এ A থেকে, একটি লুপ তৈরি করা হচ্ছে।

বিশ্বব্যাপী ঠিকানা ফুটা হত্তয়া
মনে রাখবেন যে আইপিভি 6-এর ঠিকানাগুলি বিশ্বব্যাপী সংজ্ঞানুসারে. একটি সঙ্গে IPv6 ব্যবহার করার সময়
অনুকরণ ns-3 সক্ষমতা, যেকোন মূল্যে এড়িয়ে চলুন গ্লোবাল ইন্টারনেটের দিকে ঠিকানা ফাঁস।
ফুটো প্রতিরোধ করার জন্য একটি বহিরাগত ফায়ারওয়াল সেটআপ করার পরামর্শ দেওয়া হয়।

2001:DB8::/32 ঠিকানাগুলি
IPv6 মান (RFC 3849) সংজ্ঞায়িত করে 2001:DB8::/32 ঠিকানা ক্লাস জন্য ডকুমেন্টেশন.
এই ম্যানুয়াল এই নিয়ম ব্যবহার করে. এই ক্লাসের ঠিকানাগুলি, তবে, শুধুমাত্র ব্যবহারযোগ্য
একটি নথি, এবং রাউটার তাদের বাতিল করা উচিত।

ভ্যালিডেশন
IPv6 প্রোটোকল এখনও বাস্তব বাস্তবায়নের বিরুদ্ধে ব্যাপকভাবে যাচাই করা হয়নি।
প্রকৃত পরীক্ষায় প্রধানত Wireshark-এর মাধ্যমে .pcap ট্রেস ফাইলের পরীক্ষা করা জড়িত।
এবং ফলাফল ইতিবাচক।

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

প্রমাথী স্থাপত্য
[ছবি] রাউটিং এর ওভারভিউ.UNINDENT

সংক্ষিপ্ত বিবরণ of প্রমাথী Ipv4 এর জন্য সামগ্রিক রাউটিং আর্কিটেকচার দেখায়। মূল বস্তু হল
Ipv4L3Protocol, Ipv4RoutingProtocol(গুলি) (একটি ক্লাস যেখানে সমস্ত রাউটিং/ফরওয়ার্ড করা হয়েছে
Ipv4L3Protocol, এবং Ipv4Route(গুলি) থেকে অর্পিত৷

Ipv4L3Protocol অবশ্যই সিমুলেশনে কমপক্ষে একটি Ipv4RoutingProtocol যোগ করতে হবে
সেটআপ সময়. Ipv4::SetRoutingProtocol () কল করে এটি স্পষ্টভাবে করা হয়।

বিমূর্ত বেস ক্লাস Ipv4RoutingProtocol () একটি ন্যূনতম ইন্টারফেস ঘোষণা করে, যার মধ্যে রয়েছে
দুটি পদ্ধতির মধ্যে: RouteOutput () এবং RouteInput ()। থেকে আউটবাউন্ড ভ্রমণ প্যাকেট জন্য
একটি হোস্ট, পরিবহন প্রোটোকল Ipv4RoutingProtocol অবজেক্টের জন্য Ipv4 জিজ্ঞাসা করবে
ইন্টারফেস, এবং Ipv4RoutingProtocol::RouteOutput () এর মাধ্যমে একটি রুটের অনুরোধ করবে। একটি Ptr থেকে
Ipv4Route অবজেক্ট ফেরত দেওয়া হয়। এটি লিনাক্সে একটি dst_cache এন্ট্রির সাথে সাদৃশ্যপূর্ণ। দ্য
Ipv4Route কে Ipv4L3Protocol-এ নিয়ে যাওয়া হয় যাতে সেখানে দ্বিতীয়বার লুকআপ এড়ানো যায়। যাহোক,
কিছু ক্ষেত্রে (যেমন Ipv4 কাঁচা সকেট) থেকে সরাসরি RouteOutput() এ কলের প্রয়োজন হবে
Ipv4L3 প্রোটোকল।

ফরোয়ার্ডিং বা ডেলিভারির জন্য অন্তর্মুখী প্রাপ্ত প্যাকেটগুলির জন্য, নিম্নলিখিত পদক্ষেপগুলি ঘটে।
Ipv4L3Protocol::Receive() কল করে Ipv4RoutingProtocol::RouteInput()। এই পাস
Ipv4RoutingProtocol অবজেক্টে প্যাকেট মালিকানা। চারটি কলব্যাক যুক্ত আছে
এই কল দিয়ে:

· লোকাল ডেলিভার

· ইউনিকাস্টফরওয়ার্ড

· মাল্টিকাস্টফরওয়ার্ড

· ত্রুটি

Ipv4RoutingProtocol শেষ পর্যন্ত প্রতিটি প্যাকেটের জন্য এই কলব্যাকগুলির একটিতে কল করতে হবে
এটা জন্য দায়িত্ব নেয়. এটি মূলত কিভাবে ইনপুট রাউটিং প্রক্রিয়া কাজ করে
লিনাক্স।
[ছবি] Ipv4 রাউটিং বিশেষীকরণ..UNINDENT

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

আইপিভি 4 রাউটিং বিশেষীকরণ এটি থেকে কীভাবে একাধিক রাউটিং প্রোটোকল পাওয়া যায় তা ব্যাখ্যা করে
বেস ক্লাস। একটি ক্লাস Ipv4ListRouting (ইমপ্লিমেন্টেশন ক্লাস Ipv4ListRoutingImpl) প্রদান করে
মধ্যে বিদ্যমান তালিকা রাউটিং পদ্ধতি ns-3. এর API বেস ক্লাসের মতোই
একাধিক অগ্রাধিকারযুক্ত রাউটিং প্রোটোকল যোগ করার ক্ষমতা ছাড়া Ipv4Routing
(Ipv4ListRouting::AddRoutingProtocol(), Ipv4ListRouting::GetRoutingProtocol())।

এই রাউটিং প্রোটোকলগুলির বিশদ বিবরণ নীচে বর্ণিত হয়েছে ইউনিকাস্ট প্রমাথী। আপাতত,
আমরা প্রথমে একটি মৌলিক ইউনিকাস্ট রাউটিং ক্ষমতা দিয়ে শুরু করব যা বিশ্বব্যাপী করার উদ্দেশ্যে
সিমুলেশন সময় t=0 এ রাউটিং টেবিল তৈরি করুন যারা সিমুলেশন ব্যবহারকারীদের জন্য চিন্তা করেন না
গতিশীল রাউটিং।

বিশ্বব্যাপী কেন্দ্রীভূত প্রমাথী
গ্লোবাল সেন্ট্রালাইজড রাউটিংকে কখনও কখনও "ঈশ্বর" রাউটিং বলা হয়; এটি একটি বিশেষ
বাস্তবায়ন যা সিমুলেশন টপোলজিতে চলে এবং একটি সংক্ষিপ্ত পথ অ্যালগরিদম চালায়, এবং
প্রতিটি নোডের রাউটিং টেবিলগুলি পূরণ করে। কোন প্রকৃত প্রোটোকল ওভারহেড নেই (সিমুলেটেড লিঙ্কগুলিতে)
এই পদ্ধতির সঙ্গে খরচ হয়. এটির কয়েকটি সীমাবদ্ধতা রয়েছে:

· তারযুক্ত কেবল: এটি ওয়্যারলেস নেটওয়ার্কে ব্যবহারের উদ্দেশ্যে নয়।

· ইউনিকাস্ট কেবল: এটি মাল্টিকাস্ট করে না।

· স্কেলেবিলিটি: বড় টপোলজিতে (যেমন 1000 নোড) এর কিছু ব্যবহারকারী এটি লক্ষ্য করেছেন
বর্তমান বাস্তবায়ন খুব পরিমাপযোগ্য নয়। বিশ্বব্যাপী কেন্দ্রীভূত রাউটিং হবে
গণনা এবং রানটাইম কর্মক্ষমতা কমাতে ভবিষ্যতে পরিবর্তিত।

বর্তমানে, পয়েন্ট-টু-পয়েন্ট এবং শেয়ার্ড উভয়ের উপর বিশ্বব্যাপী কেন্দ্রীভূত IPv4 ইউনিকাস্ট রাউটিং
(CSMA) লিঙ্কগুলি সমর্থিত।

ডিফল্টরূপে, ব্যবহার করার সময় ns-3 helper API এবং ডিফল্ট InternetStackHelper, গ্লোবাল
রাউটিং ক্ষমতা নোডে যোগ করা হবে, এবং গ্লোবাল রাউটিং একটি হিসাবে সন্নিবেশ করা হবে
স্ট্যাটিক রুটের তুলনায় কম অগ্রাধিকার সহ রাউটিং প্রোটোকল (অর্থাৎ, ব্যবহারকারীরা রুট সন্নিবেশ করতে পারেন
Ipv4StaticRouting API এর মাধ্যমে এবং তারা বিশ্বব্যাপী প্রাপ্ত রুটগুলির উপর অগ্রাধিকার পাবে
রাউটিং)।

বিশ্বব্যাপী ইউনিকাস্ট প্রমাথী এপিআই
পাবলিক API খুবই নূন্যতম। ব্যবহারকারীর স্ক্রিপ্টগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

# "ns3/internet-module.h" অন্তর্ভুক্ত করুন

যদি ডিফল্ট InternetStackHelper ব্যবহার করা হয়, তাহলে গ্লোবাল রাউটিং এর একটি উদাহরণ হবে
প্রতিটি নোডে একত্রিত। IP ঠিকানাগুলি কনফিগার করার পরে, নিম্নলিখিত ফাংশন কল করুন
একটি Ipv4 ইন্টারফেস আছে এমন সমস্ত নোডগুলি ফরওয়ার্ডিং টেবিলগুলি গ্রহণ করবে
GlobalRouteManager দ্বারা স্বয়ংক্রিয়ভাবে প্রবেশ করা হয়েছে:

Ipv4GlobalRoutingHelper::PopulateRoutingTables ();

বিঃদ্রঃ: একটি অনুস্মারক যে wifi NetDevice কাজ করবে কিন্তু কোনো বেতার প্রভাব গ্রহণ করবে না
হিসেবের মধ্যে. বেতারের জন্য, আমরা নীচে বর্ণিত OLSR গতিশীল রাউটিং সুপারিশ করি।

এটি ব্যবহার করে একটি সিমুলেশন মাঝখানে আবার এই ফাংশন কল করা সম্ভব
নিম্নলিখিত অতিরিক্ত পাবলিক ফাংশন:

Ipv4GlobalRoutingHelper::RecomputeRoutingTables ();

যা পুরানো টেবিলগুলিকে ফ্লাশ করে, নতুন ইন্টারফেসের তথ্যের জন্য নোডগুলিকে জিজ্ঞাসা করে এবং৷
রুট পুনর্নির্মাণ করে।

উদাহরণস্বরূপ, এই সময়সূচী কলটি 5 সেকেন্ডের সময়ে টেবিলগুলিকে পুনর্নির্মাণের কারণ হবে:

সিমুলেটর::সূচি (সেকেন্ড (5),
&Ipv4GlobalRoutingHelper::RecomputeRoutingTables);

দুটি বৈশিষ্ট্য রয়েছে যা আচরণকে নিয়ন্ত্রণ করে। প্রথমটি হল
Ipv4GlobalRouting::RandomEcmpRouting. সত্য হিসাবে সেট করা হলে, প্যাকেটগুলি এলোমেলোভাবে রাউট করা হয়
সমান খরচের বহুপথ রুট। মিথ্যা (ডিফল্ট) সেট করা থাকলে, শুধুমাত্র একটি রুট ধারাবাহিকভাবে
ব্যবহৃত দ্বিতীয়টি হল Ipv4GlobalRouting::RespondToInterfaceEvents। সত্য হিসাবে সেট করা হলে,
ইন্টারফেস নোটিফিকেশন ইভেন্টগুলিতে (উপর/নিচে, বা
ঠিকানা যোগ/মুছে ফেলুন)। যদি মিথ্যা (ডিফল্ট) সেট করা হয়, তবে ব্যবহারকারী ম্যানুয়ালি না হলে রাউটিং ভেঙে যেতে পারে
এই ধরনের ইভেন্টের পরে RecomputeRoutingTables() কল করে। ডিফল্ট সংরক্ষণের জন্য মিথ্যা সেট করা হয়
উত্তরাধিকার ns-3 প্রোগ্রাম আচরণ।

বিশ্বব্যাপী প্রমাথী বাস্তবায়ন
এই বিভাগটি সেই পাঠকদের জন্য যারা এটি কীভাবে প্রয়োগ করা হয় সে সম্পর্কে যত্নশীল। একটি সিঙ্গলটন
অবজেক্ট (GlobalRouteManager) প্রতিটি নোডের স্ট্যাটিক রুটগুলি পূরণ করার জন্য দায়ী,
সেই নোডের সর্বজনীন Ipv4 API ব্যবহার করে। এটি টপোলজিতে প্রতিটি নোডকে একটি জন্য প্রশ্ন করে
"গ্লোবাল রাউটার" ইন্টারফেস। যদি পাওয়া যায়, এটি একটি "লিঙ্ক" পেতে সেই ইন্টারফেসের API ব্যবহার করে
রাউটারের জন্য রাষ্ট্রীয় বিজ্ঞাপন (LSA)"। লিঙ্ক রাজ্য বিজ্ঞাপনগুলি ওএসপিএফ-এ ব্যবহৃত হয়
রাউটিং, এবং আমরা তাদের বিন্যাস অনুসরণ করি।

এটা মনে রাখা গুরুত্বপূর্ণ যে প্যাকেটগুলি প্রবাহিত হওয়ার আগে এই সমস্ত গণনা করা হয়
নেটওয়ার্কে বিশেষ করে, কোন ওভারহেড বা নিয়ন্ত্রণ প্যাকেট বিনিময় হচ্ছে না
এই বাস্তবায়ন ব্যবহার করার সময়। পরিবর্তে, এই গ্লোবাল রুট ম্যানেজার কেবলমাত্র তালিকায় চলে
নোডগুলি প্রয়োজনীয় তথ্য তৈরি করতে এবং প্রতিটি নোডের রাউটিং টেবিল কনফিগার করতে।

GlobalRouteManager সমগ্র থেকে সংগৃহীত LSAs সহ একটি লিঙ্ক স্টেট ডাটাবেস তৈরি করে
টপোলজি তারপর, টপোলজিতে প্রতিটি রাউটারের জন্য, GlobalRouteManager OSPF চালায়
ডাটাবেসে সংক্ষিপ্ততম পথ প্রথম (এসপিএফ) গণনা, এবং রাউটিং টেবিলগুলিকে পপুলেট করে
প্রতিটি নোড।

কোয়াগ্গা (http://www.quagga.net) ওএসপিএফ বাস্তবায়নের ভিত্তি হিসাবে ব্যবহার করা হয়েছিল
রাউটিং গণনা যুক্তি. বিদ্যমান ওএসপিএফ এসপিএফ বাস্তবায়ন অনুসরণ করার একটি সুবিধা হল
যে ওএসপিএফ ইতিমধ্যেই সমস্ত সাধারণ ধরণের নেটওয়ার্কের জন্য লিঙ্ক স্টেট বিজ্ঞাপন সংজ্ঞায়িত করেছে
লিঙ্ক:

· পয়েন্ট টু পয়েন্ট (সিরিয়াল লিঙ্ক)

· পয়েন্ট-টু-মাল্টিপয়েন্ট (ফ্রেম রিলে, অ্যাডহক ওয়্যারলেস)

· নন-ব্রডকাস্ট একাধিক অ্যাক্সেস (এটিএম)

· সম্প্রচার (ইথারনেট)

অতএব, আমরা মনে করি যে এই অন্যান্য লিঙ্কের ধরনগুলিকে সক্ষম করা এখন আরও সহজতর হবে৷
যে অন্তর্নিহিত OSPF SPF ফ্রেমওয়ার্ক রয়েছে।

বর্তমানে, আমরা IPv4 পয়েন্ট-টু-পয়েন্ট, সংখ্যাযুক্ত লিঙ্কগুলি এবং সেইসাথে ভাগ করা সম্প্রচার পরিচালনা করতে পারি
(CSMA) লিঙ্ক। সমান খরচের মাল্টিপাথও সমর্থিত। যদিও ওয়্যারলেস লিংক প্রকার
বাস্তবায়ন দ্বারা সমর্থিত, নোট করুন যে এই বাস্তবায়নের প্রকৃতির কারণে, যেকোনো
চ্যানেল প্রভাব বিবেচনা করা হবে না এবং রাউটিং টেবিল প্রতিটি নোড অনুমান করবে
একই শেয়ার্ড চ্যানেলে প্রতিটি অন্য নোড থেকে পৌঁছানো যায় (অর্থাৎ এটি চিকিত্সা করা হবে
একটি সম্প্রচার CSMA লিঙ্কের মতো)।

GlobalRouteManager প্রথমে নোডের তালিকা পায় এবং একটি GlobalRouter একত্রিত করে
নিম্নরূপ প্রতিটি এক ইন্টারফেস:

typedef std::vector < Ptr >::ইটারেটর ইটারেটর;
জন্য (Iterator i = NodeList::Begin (); i != NodeList::End (); i++)
{
Ptr নোড = *i;
Ptr globalRouter = CreateObject (নোড);
node->AggregateObject (globalRouter);
}

এই ইন্টারফেসটি পরে জিজ্ঞাসা করা হয় এবং প্রতিটির জন্য একটি লিঙ্ক স্টেট বিজ্ঞাপন তৈরি করতে ব্যবহৃত হয়
রাউটার, এবং এই লিঙ্ক স্টেট ডাটাবেস ওএসপিএফ সংক্ষিপ্ত পথ গণনা যুক্তিতে খাওয়ানো হয়।
Ipv4 API অবশেষে রুটগুলিকে নিজেরাই তৈরি করতে ব্যবহৃত হয়।

ইউনিকাস্ট প্রমাথী
বর্তমানে IPv4 এর জন্য সাতটি ইউনিকাস্ট রাউটিং প্রোটোকল এবং IPv6 এর জন্য তিনটি সংজ্ঞায়িত করা হয়েছে:

· ক্লাস Ipv4StaticRouting (ইউনিকাস্ট এবং মাল্টিকাস্ট উভয়ই কভার করে)

· IPv4 অপ্টিমাইজড লিংক স্টেট রাউটিং (OLSR) (এতে সংজ্ঞায়িত একটি MANET প্রোটোকল জন্য RFC 3626)

· IPv4 অ্যাডহক অন ডিমান্ড ডিসটেন্স ভেক্টর (AODV) (এতে সংজ্ঞায়িত একটি MANET প্রোটোকল জন্য RFC 3561)

· IPv4 ডেস্টিনেশন সিকোয়েন্সড ডিসটেন্স ভেক্টর (DSDV) (একটি MANET প্রোটোকল)

· IPv4 ডায়নামিক সোর্স রাউটিং (DSR) (একটি MANET প্রোটোকল)

· ক্লাস Ipv4ListRouting (রাউটিং প্রোটোকলের একটি অগ্রাধিকার তালিকা সংরক্ষণ করতে ব্যবহৃত)

· ক্লাস Ipv4GlobalRouting (গ্লোবাল রুট ম্যানেজার দ্বারা গণনা করা রুট সংরক্ষণ করতে ব্যবহৃত হয়, যদি
যে ব্যবহার করা হয়)

· ক্লাস Ipv4NixVectorRouting (গ্লোবাল রাউটিং এর একটি আরো দক্ষ সংস্করণ যা সঞ্চয় করে
একটি প্যাকেট হেডার ক্ষেত্রের উৎস রুট)

· ক্লাস Ipv6ListRouting (রাউটিং প্রোটোকলের একটি অগ্রাধিকার তালিকা সংরক্ষণ করতে ব্যবহৃত)

· ক্লাস Ipv6 StaticRouting

· ক্লাস RipNg - IPv6 RIPng প্রোটোকল (জন্য RFC 2080)

ভবিষ্যতে, এই আর্কিটেকচারটি কাউকে লিনাক্স-এর মতো বাস্তবায়ন করার অনুমতি দেবে
রাউটিং ক্যাশে, বা একটি ক্লিক মডুলার রাউটারের সাথে বাস্তবায়ন, কিন্তু সেগুলি সুযোগের বাইরে
এখন জন্য

আইপিভি[4,6]লিস্ট রাউটিং
এই বিভাগটি বর্তমান ডিফল্ট বর্ণনা করে ns-3 আইপিভি[4,6]রাউটিং প্রোটোকল। সাধারণত,
একাধিক রাউটিং প্রোটোকল ইউজার স্পেসে সমর্থিত এবং একটি একক লেখার জন্য সমন্বয় করে
কার্নেলে ফরওয়ার্ডিং টেবিল। বর্তমানে ns-3, বাস্তবায়ন পরিবর্তে অনুমতি দেয়
একাধিক রাউটিং প্রোটোকল তাদের নিজস্ব রাউটিং অবস্থা তৈরি/রাখতে এবং আইপি
বাস্তবায়ন এই রাউটিং প্রোটোকলগুলির প্রতিটিকে জিজ্ঞাসা করবে (কিছু ক্রমে দ্বারা নির্ধারিত হয়
সিমুলেশন লেখক) একটি রুট পাওয়া না হওয়া পর্যন্ত।

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

Ipv[4,6]4ListRouting::AddRoutingProtocol
ক্লাস Ipv4ListRouting এবং Ipv6ListRouting একটি বিশুদ্ধ ভার্চুয়াল ফাংশন ঘোষণা প্রদান করে
পদ্ধতির জন্য যা একজনকে একটি রাউটিং প্রোটোকল যোগ করতে দেয়:

void AddRoutingProtocol (Ptr রাউটিং প্রোটোকল,
int16_t অগ্রাধিকার);

void AddRoutingProtocol (Ptr রাউটিং প্রোটোকল,
int16_t অগ্রাধিকার);

এই পদ্ধতিগুলি যথাক্রমে Ipv4ListRoutingImpl এবং ক্লাস দ্বারা প্রয়োগ করা হয়
ইন্টারনেট মডিউলে Ipv6ListRoutingImpl.

উপরের অগ্রাধিকার পরিবর্তনশীলটি রাউটিং প্রোটোকলের অগ্রাধিকারকে নিয়ন্ত্রণ করে
ঢোকানো এটি একটি স্বাক্ষরিত int যে লক্ষ্য করুন. ডিফল্টরূপে ns-3, হেল্পার ক্লাস করবে
একটি Ipv[4,6]ListRoutingImpl অবজেক্টকে ইনস্ট্যান্টিয়েট করুন এবং এতে একটি Ipv[4,6]স্ট্যাটিকরাউটিংআইএমপিএল যোগ করুন
অগ্রাধিকার শূন্য এ বস্তু. অভ্যন্তরীণভাবে, Ipv[4,6]রাউটিং প্রোটোকলের একটি তালিকা সংরক্ষণ করা হয়, এবং
এবং রাউটিং প্রোটোকল প্রতিটি দেখার জন্য অগ্রাধিকারের হ্রাসের ক্রম অনুসারে পরামর্শ করা হয়
একটি মিল পাওয়া যায় কিনা। অতএব, আপনি যদি আপনার Ipv4RoutingProtocol-কে অগ্রাধিকার দিতে চান
স্ট্যাটিক রাউটিং থেকে কম, 0-এর কম অগ্রাধিকার দিয়ে সন্নিবেশ করুন; যেমন:

Ptr myRoutingProto = CreateObject ();
listRoutingPtr->AddRoutingProtocol (myRoutingProto, -10);

RouteOutput() বা RouteInput() এ কল করার পরে, তালিকা রাউটিং অবজেক্ট তালিকাটি অনুসন্ধান করবে
রাউটিং প্রোটোকলের, অগ্রাধিকার ক্রমে, যতক্ষণ না একটি রুট পাওয়া যায়। যেমন রাউটিং প্রোটোকল
উপযুক্ত কলব্যাক আহ্বান করবে এবং আর কোন রাউটিং প্রোটোকল অনুসন্ধান করা হবে না।

অপ্টিমাইজ লিংক রাষ্ট্র প্রমাথী (OLSR)
এই IPv4 রাউটিং প্রোটোকলটি মূলত NS-2 এর জন্য OLSR-UM বাস্তবায়ন থেকে পোর্ট করা হয়েছিল।
বাস্তবায়নটি src/olsr ডিরেক্টরিতে পাওয়া যায় এবং একটি উদাহরণ স্ক্রিপ্ট রয়েছে
উদাহরণ/simple-point-to-point-olsr.cc.

সাধারণত, OLSR একটি প্রধান প্রোগ্রামে একটি OlsrHelper ক্লাস ব্যবহার করে সক্রিয় করা হয় যা ইনস্টল করা হয়
একটি Ipv4ListRoutingProtocol অবজেক্টে OLSR। নিম্নলিখিত নমুনা কমান্ড সক্রিয় হবে
কিছু অন্যান্য রাউটিং হেল্পার অবজেক্টের সাথে এই হেল্পার ক্লাসটি ব্যবহার করে একটি সিমুলেশনে OLSR।
অগ্রাধিকার মান 10 এর সেটিং, স্ট্যাটিক রাউটিং অগ্রাধিকার 0 এর আগে, এর অর্থ হল
নোডের স্ট্যাটিক রাউটিং টেবিলের আগে একটি রুটের জন্য OLSR-এর সাথে পরামর্শ করা হবে।

নোডকন্টেইনার গ:
...
// OLSR সক্ষম করুন
NS_LOG_INFO ("OLSR রাউটিং সক্ষম করা হচ্ছে।");
OlsrHelper olsr;

Ipv4 StaticRoutingHelper staticRouting;

Ipv4ListRoutingHelper তালিকা;
তালিকা যোগ করুন (staticRouting, 0);
তালিকা যোগ করুন (olsr, 10);

InternetStackHelper ইন্টারনেট;
internet.SetRoutingHelper (তালিকা);
internet.Install (c);

একবার ইনস্টল হয়ে গেলে, OLSR "প্রধান ইন্টারফেস" SetMainInterface() কমান্ড দিয়ে সেট করা যেতে পারে।
ব্যবহারকারী একটি প্রধান ঠিকানা নির্দিষ্ট না করলে, প্রোটোকল প্রথম প্রাথমিক আইপি নির্বাচন করবে
ঠিকানা যা এটি খুঁজে পায়, প্রথমে লুপব্যাক ইন্টারফেস শুরু করে এবং তারপর পরেরটি
নন-লুপব্যাক ইন্টারফেস পাওয়া গেছে, Ipv4 ইন্টারফেস সূচকের ক্রমে। এর লুপব্যাক ঠিকানা
127.0.0.1 নির্বাচন করা হয়নি। উপরন্তু, প্রোটোকল ধ্রুবক একটি সংখ্যা সংজ্ঞায়িত করা হয়
olsr-routing-protocol.cc.

ওলসআর সিমুলেশনের শূন্য সময়ে শুরু হয়, অবজেক্ট::স্টার্ট() এর কলের উপর ভিত্তি করে
অবশেষে OlsrRoutingProtocol::DoStart() কল করে। দ্রষ্টব্য: ব্যবহারকারীকে শুরু করার অনুমতি দেওয়ার জন্য একটি প্যাচ
এবং অন্য সময়ে প্রোটোকল বন্ধ স্বাগত জানানো হবে.

বর্তমানে, OLSR একটি Ipv4ListRouting অবজেক্টের সাথে ব্যবহার করার জন্য সীমাবদ্ধ, এবং এতে সাড়া দেয় না
একটি ডিভাইসের আইপি ঠিকানায় গতিশীল পরিবর্তন বা লিঙ্ক আপ/ডাউন বিজ্ঞপ্তি; অর্থাৎ টপোলজি
পরিবর্তনগুলি একটি ওয়্যারলেস চ্যানেলে সংযোগের ক্ষতি/লাভের কারণে হয়৷

RIPng
এই IPv6 রাউটিং প্রোটোকল (জন্য RFC 2080) হল সুপরিচিত RIPv1 এবং RIPv2 এর বিবর্তন
(দেখুন জন্য RFC 1058 এবং জন্য RFC 1723) IPv4 এর জন্য রাউটিং প্রোটোকল।

প্রোটোকল খুব সহজ, এবং এটি সাধারণত ফ্ল্যাট, সাধারণ নেটওয়ার্কের জন্য উপযুক্ত
টপোলজিস

RIPng দৃঢ়ভাবে RIPv1 এবং RIPv2 এর উপর ভিত্তি করে, এবং এর একই লক্ষ্য রয়েছে এবং
সীমাবদ্ধতা বিশেষ করে, RIP 16 এর সমান বা তার বেশি মেট্রিক সহ যেকোনো রুট বিবেচনা করে
অগম্য হিসাবে ফলস্বরূপ, সর্বাধিক সংখ্যক হপস নেটওয়ার্কটি কম হতে হবে
15 এর থেকে (রাউটারের সংখ্যা সেট করা নেই)। ব্যবহারকারীদের পড়তে উত্সাহিত করা হয় জন্য RFC 2080 এবং জন্য RFC
1058 RIPng আচরণ এবং সীমাবদ্ধতা সম্পূর্ণরূপে বুঝতে।

প্রমাথী অভিসৃতি
RIPng একটি দূরত্ব-ভেক্টর অ্যালগরিদম ব্যবহার করে এবং রুটগুলি অনুযায়ী আপডেট করা হয়
বেলম্যান-ফোর্ড অ্যালগরিদম (কখনও কখনও ফোর্ড-ফুলকারসন অ্যালগরিদম নামে পরিচিত)। অ্যালগরিদম আছে a
O(|V|*|E|) এর কনভারজেন্স সময় যেখানে |V| এবং |ই| শীর্ষবিন্দুর সংখ্যা (রাউটার) এবং
প্রান্ত (লিঙ্ক) যথাক্রমে। এটা জোর দেওয়া উচিত যে অভিসারন সময় হল সংখ্যা
অ্যালগরিদমের ধাপ, এবং প্রতিটি ধাপ একটি বার্তা দ্বারা ট্রিগার হয়। যেহেতু ট্রিগার হয়েছে
আপডেট (অর্থাৎ, যখন একটি রুট পরিবর্তন করা হয়) 1-5 সেকেন্ডের কুলডাউন থাকে, টপলজি করতে পারে
স্থিতিশীল হতে কিছু সময় প্রয়োজন।

ব্যবহারকারীদের সচেতন হওয়া উচিত যে, রাউটিং টেবিল নির্মাণের সময়, রাউটারগুলি ড্রপ হতে পারে
প্যাকেট RIPng নির্মাণের অনুমতি দেওয়ার জন্য যথেষ্ট দীর্ঘ সময়ের পরেই ডেটা ট্র্যাফিক পাঠানো উচিত
নেটওয়ার্ক টপোলজি। সাবঅপ্টিমাল থাকার জন্য সাধারণত 80 সেকেন্ড যথেষ্ট হওয়া উচিত (কিন্তু
কাজ) রাউটিং সেটআপ। এর মধ্যে সবচেয়ে বেশি রুট প্রচার করার জন্য প্রয়োজনীয় সময় অন্তর্ভুক্ত
ট্রিগার করা আপডেট সহ দূরবর্তী রাউটার (16 হপস)।

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

উদাহরণ example/routing/ripng-simple-network.cc নেটওয়ার্ক সেটআপ এবং উভয়ই দেখায়
নেটওয়ার্ক পুনরুদ্ধারের পর্যায়গুলি।

বিভক্ত করা দিগন্ত
স্প্লিট হরাইজন রাউটিং অস্থিরতা প্রতিরোধ করার একটি কৌশল। তিনটি বিকল্প সম্ভব:

· বিভক্ত দিগন্ত নেই

· বিভক্ত দিগন্ত

· বিষ বিপরীত

প্রথম ক্ষেত্রে, সমস্ত রাউটারের ইন্টারফেসে রুটের বিজ্ঞাপন দেওয়া হয়। দ্বিতীয়টিতে
ক্ষেত্রে, রাউটারগুলি ইন্টারফেসে কোনও রুটের বিজ্ঞাপন দেবে না যেখান থেকে এটি শেখা হয়েছিল।
পয়জন রিভার্স ইন্টারফেসে রুটের বিজ্ঞাপন দেবে যেখান থেকে এটা শেখা হয়েছিল, কিন্তু
16 এর মেট্রিক সহ (অনন্ত)। তিনটি কৌশলের সম্পূর্ণ বিশ্লেষণের জন্য, দেখুন জন্য RFC
1058, বিভাগ 2.2।

উদাহরণ ripng-simple-network.cc RFC-তে বর্ণিত নেটওয়ার্ক টপলজির উপর ভিত্তি করে,
কিন্তু এটি সেখানে বর্ণিত প্রভাব দেখায় না।

কারণ হল ট্রিগার করা আপডেটগুলি, একসাথে যখন একটি রাউটার
একটি রুট অকার্যকর করে, এটি অবিলম্বে রুট অপ্রাপ্যতা প্রচার করবে, এইভাবে
RFC-তে বর্ণিত বেশিরভাগ সমস্যা প্রতিরোধ করা।

যাইহোক, জটিল টপলজির সাথে, রুট অস্থিরতার ঘটনা এখনও সম্ভব
লিঙ্ক ব্যর্থতার পরে RFC-তে বর্ণিত একটির অনুরূপ। ফলস্বরূপ, সব
স্প্লিট হরাইজন রিম্যানিনস সম্পর্কে বিবেচনা বৈধ।

ডিফল্ট যাত্রাপথ
RIPng প্রোটোকল ইনস্টল করা উচিত কেবল রাউটারে ফলস্বরূপ, নোডগুলি জানতে পারবে না
ডিফল্ট রাউটার কি?

এই সীমাবদ্ধতা অতিক্রম করতে, ব্যবহারকারীদের হয় ডিফল্ট রুট ম্যানুয়ালি ইনস্টল করা উচিত (যেমন,
Ipv6StaticRouting অবলম্বন করে), অথবা RADVd ব্যবহার করে। RADVd পাওয়া যায় ns-3 মধ্যে
অ্যাপ্লিকেশন মডিউল, এবং এটি দৃঢ়ভাবে প্রস্তাবিত.

প্রোটোকল পরামিতি এবং অপশন
RIPng ns-3 বাস্তবায়ন রুটের সাথে যুক্ত সমস্ত টাইমার পরিবর্তন করতে দেয়
আপডেট এবং রুট জীবনকাল.

অধিকন্তু, ব্যবহারকারীরা প্রতি-নোডের ভিত্তিতে ইন্টারফেস মেট্রিক্স পরিবর্তন করতে পারে।

বিভক্ত দিগন্তের ধরন (রুট ব্যাক-প্রচার এড়াতে) a এ নির্বাচন করা যেতে পারে
প্রতি-নোডের ভিত্তিতে, পছন্দগুলি হল "কোন বিভক্ত দিগন্ত", "বিভক্ত দিগন্ত" এবং "বিষ"
বিপরীত" দেখুন জন্য RFC 2080 আরও বিস্তারিত জানার জন্য, এবং জন্য RFC 1058 একটি সম্পূর্ণ আলোচনার জন্য
বিভক্ত অনুভূমিক কৌশল.

সীমাবদ্ধতা
নেক্সট হপ বিকল্পের জন্য কোন সমর্থন নেই (জন্য RFC 2080, ধারা 2.1.1)। দ্য নেক্সট হপ
নেটওয়ার্কের সমস্ত রাউটারে RIPng চালানো না হলে বিকল্পটি কার্যকর। সমর্থন
এই বিকল্পের জন্য ভবিষ্যতে বিবেচনা করা যেতে পারে.

CIDR উপসর্গ সমষ্টির জন্য কোন সমর্থন নেই। ফলস্বরূপ, উভয় রাউটিং টেবিল এবং
রুট বিজ্ঞাপন প্রয়োজনের চেয়ে বড় হতে পারে। উপসর্গ একত্রীকরণ যোগ করা যেতে পারে
ভবিষ্যতে.

মাল্টিকাস্ট প্রমাথী
একটি নোডে স্ট্যাটিক মাল্টিকাস্ট রুট যোগ করতে নিম্নলিখিত ফাংশনটি ব্যবহার করা হয়:

অকার্যকর
Ipv4StaticRouting::AddMulticastRoute (Ipv4Address origin,
আইপিভি 4 অ্যাড্রেস গ্রুপ,
uint32_t ইনপুট ইন্টারফেস,
std::ভেক্টর আউটপুট ইন্টারফেস);

একটি মাল্টিকাস্ট রুটে অবশ্যই একটি মূল আইপি ঠিকানা, একটি মাল্টিকাস্ট গ্রুপ এবং একটি ইনপুট উল্লেখ করতে হবে
শর্ত হিসাবে নেটওয়ার্ক ইন্টারফেস সূচক এবং আউটপুট নেটওয়ার্ক ইন্টারফেসের একটি ভেক্টর প্রদান করে
শর্তগুলির সাথে মিলে যাওয়া প্যাকেটগুলির উপর সূচকগুলি পাঠানো হয়৷

সাধারণত দুটি প্রধান ধরনের মাল্টিকাস্ট রুট আছে: প্রথম ধরনের রুট ব্যবহার করা হয়
ফরওয়ার্ড করার সময়। শর্তাবলী সব স্পষ্টভাবে প্রদান করা আবশ্যক. দ্বিতীয় ধরনের
একটি স্থানীয় নোড থেকে প্যাকেট বন্ধ পেতে রুট ব্যবহার করা হয়। পার্থক্য ইনপুট হয়
ইন্টারফেস. ফরওয়ার্ড করার রুটে সবসময় একটি সুস্পষ্ট ইনপুট ইন্টারফেস নির্দিষ্ট করা থাকে।
একটি নোডের বন্ধ রুটগুলি সর্বদা ইনপুট ইন্টারফেসকে একটি ওয়াইল্ডকার্ড দ্বারা নির্দিষ্ট করে
সূচক Ipv4RoutingProtocol::IF_INDEX_ANY।

একটি স্থানীয় নোড বন্ধ রুট জন্য ওয়াইল্ডকার্ড মূল এবং মাল্টিকাস্ট গ্রুপ ব্যবহার করা যেতে পারে
ঠিকানা Ipv4Adresses-এর জন্য যে ওয়াইল্ডকার্ডটি ব্যবহার করা হয় সেটি হল ঠিকানাটি ফেরত দিয়েছে
Ipv4Address::GetAny () -- সাধারণত "0.0.0.0"। ওয়াইল্ডকার্ডের ব্যবহার একজনকে নির্দিষ্ট করতে দেয়
ডিফল্ট আচরণ বিভিন্ন ডিগ্রী থেকে।

উদাহরণস্বরূপ, মূল ঠিকানাটিকে একটি ওয়াইল্ডকার্ড তৈরি করা, কিন্তু মাল্টিকাস্ট গ্রুপ ত্যাগ করা
নির্দিষ্ট একটিকে (একাধিক ইন্টারফেস সহ একটি নোডের ক্ষেত্রে) আলাদা তৈরি করতে দেয়
প্রতিটি মাল্টিকাস্ট গ্রুপের জন্য বিভিন্ন আউটপুট ইন্টারফেস ব্যবহার করে রুট।

যদি মূল এবং মাল্টিকাস্ট ঠিকানাগুলি ওয়াইল্ডকার্ড তৈরি করা হয়, আপনি মূলত একটি তৈরি করেছেন
ডিফল্ট মাল্টিকাস্ট ঠিকানা যা একাধিক ইন্টারফেসে ফরোয়ার্ড করতে পারে। এই তুলনা
প্রকৃত ডিফল্ট মাল্টিকাস্ট ঠিকানা যা একটি একক আউটপুট ইন্টারফেস নির্দিষ্ট করার জন্য সীমাবদ্ধ
অন্যান্য সিস্টেমে বিদ্যমান কার্যকারিতার সাথে সামঞ্জস্যের জন্য।

আরেকটি কমান্ড ডিফল্ট মাল্টিকাস্ট রুট সেট করে:

অকার্যকর
Ipv4StaticRouting::SetDefaultMulticastRoute (uint32_t outputInterface);

এটি ইউনিকাস্ট সংস্করণ SetDefaultRoute-এর মাল্টিকাস্ট সমতুল্য। আমরা বলি
রাউটিং সিস্টেমের ক্ষেত্রে কি করতে হবে যেখানে একটি নির্দিষ্ট রুট একটি গন্তব্য মাল্টিকাস্ট
গ্রুপ পাওয়া যায় না। সিস্টেম আশায় নির্দিষ্ট ইন্টারফেস প্যাকেট ফরওয়ার্ড করে
যে "সেখানে কিছু" প্যাকেটটি কীভাবে রুট করতে হয় তা ভাল জানে। এই পদ্ধতি শুধুমাত্র ব্যবহার করা হয়
প্রাথমিকভাবে একটি হোস্ট বন্ধ প্যাকেট পাঠানোর মধ্যে. ডিফল্ট মাল্টিকাস্ট রুট পরামর্শ করা হয় না
ফরোয়ার্ড করার সময় -- সঠিক রুট অবশ্যই সেই ক্ষেত্রে AddMulticastRoute ব্যবহার করে নির্দিষ্ট করতে হবে।

যেহেতু আমরা মূলত কিছু সত্তার কাছে প্যাকেট পাঠাচ্ছি, আমরা মনে করি কী করতে হবে তা হয়তো ভালো করেই জানে,
আমরা মূল ঠিকানার মতো "সূক্ষ্মতা" এর দিকে মনোযোগ দিই না, বা আমরা চিন্তাও করি না
একাধিক ইন্টারফেস ফরওয়ার্ড করা হচ্ছে। ডিফল্ট মাল্টিকাস্ট রুট সেট করা থাকলে, এটি ফেরত দেওয়া হয়
মূল বা মাল্টিকাস্ট গ্রুপ নির্বিশেষে LookupStatic থেকে নির্বাচিত রুট হিসাবে
আরেকটি নির্দিষ্ট রুট খুঁজে পাওয়া যায় নি।

অবশেষে, মাল্টিকাস্ট আনতে এবং অপসারণ করতে বেশ কয়েকটি অতিরিক্ত ফাংশন প্রদান করা হয়
রুট:

uint32_t GetNMulticastRoutes (void) const;

Ipv4MulticastRoute *GetMulticastRoute (uint32_t i) const;

Ipv4MulticastRoute *GetDefaultMulticastRoute (void) const;

bool RemoveMulticastRoute (Ipv4Address origin,
আইপিভি 4 অ্যাড্রেস গ্রুপ,
uint32_t ইনপুট ইন্টারফেস);

void RemoveMulticastRoute (uint32_t সূচক);

বিভিন্ন TCP মডেল in ns-3
এই অধ্যায়ে পাওয়া TCP মডেলগুলি বর্ণনা করে ns-3.

জাতিবাচক সমর্থন উন্নত বিভিন্ন TCP
ns-3 একাধিক TCP বাস্তবায়ন সমর্থন করার জন্য লেখা হয়েছিল। বাস্তবায়ন উত্তরাধিকারসূত্রে পাওয়া যায়
কয়েকটি সাধারণ হেডার ক্লাস src/নেটওয়ার্ক ডিরেক্টরি, যাতে ব্যবহারকারী কোড অদলবদল করতে পারে
স্ক্রিপ্টে ন্যূনতম পরিবর্তন সহ বাস্তবায়ন।

দুটি গুরুত্বপূর্ণ বিমূর্ত বেস ক্লাস আছে:

· ক্লাস TcpSocket: এই সংজ্ঞায়িত করা হয় src/internet/model/tcp-সকেট।{cc,h}. এই বর্গ
TcpSocket বৈশিষ্ট্যগুলি হোস্ট করার জন্য বিদ্যমান যা বিভিন্ন জুড়ে পুনরায় ব্যবহার করা যেতে পারে
বাস্তবায়ন উদাহরণস্বরূপ, বৈশিষ্ট্য ইনিশিয়াল সিউন্ড যে কোনটির জন্য ব্যবহার করা যেতে পারে
শ্রেণী থেকে উদ্ভূত বাস্তবায়ন TcpSocket.

· ক্লাস টিসিপিসকেট ফ্যাক্টরি: এটি টিসিপি তৈরি করতে লেয়ার-৪ প্রোটোকল ইনস্ট্যান্স ব্যবহার করে
সঠিক ধরনের সকেট।

বর্তমানে TCP এর তিনটি বাস্তবায়ন উপলব্ধ রয়েছে ns-3.

ns-3 এর জন্য একটি স্থানীয়ভাবে বাস্তবায়িত TCP

· জন্য সমর্থন নেটওয়ার্ক ব্যাজ শৈশবাবস্থা (এনএসসি)

· জন্য সমর্থন সরাসরি কোড মৃত্যুদন্ড (DCE)

এটাও উল্লেখ করা উচিত যে ভার্চুয়াল মেশিনের সাথে একত্রিত করার বিভিন্ন উপায় ns-3
কিছু অতিরিক্ত TCP বাস্তবায়ন উপলব্ধ করে, কিন্তু সেগুলি সুযোগের বাইরে
এই অধ্যায়.

ns-3 বিভিন্ন TCP
ns-3.10 রিলিজ না হওয়া পর্যন্ত, ns-3 থেকে TCP মডেলের একটি পোর্ট রয়েছে জিটিনেট. এই
ns-3.10-এর জন্য অ্যাড্রিয়াম ট্যাম দ্বারা বাস্তবায়ন যথেষ্টভাবে পুনর্লিখন করা হয়েছিল। মডেল একটি পূর্ণ
TCP, এটি দ্বিমুখী এবং সংযোগ সেটআপ এবং বন্ধ মডেল করার চেষ্টা করে
যুক্তি

TCP এর বাস্তবায়ন নিম্নলিখিত ফাইলগুলিতে রয়েছে:

src/internet/model/tcp-হেডার৷cc,h}
src/internet/model/tcp-l4-প্রটোকল।{cc,h}
src/internet/model/tcp-socket-factory-impl৷cc,h}
src/internet/model/tcp-সকেট-বেস।{cc,h}
src/internet/model/tcp-tx-buffer৷cc,h}
src/internet/model/tcp-rx-buffer৷cc,h}
src/internet/model/tcp-rfc793৷cc,h}
src/internet/model/tcp-tahoe।{cc,h}
src/internet/model/tcp-reno.{cc,h}
src/internet/model/tcp-westwood৷cc,h}
src/internet/model/tcp-newreno.{cc,h}
src/internet/model/rtt-estimator৷cc,h}
src/network/model/sequence-number.{cc,h}

TCP কনজেশন কন্ট্রোলের বিভিন্ন রূপ সাধারণ বেস সাবক্লাসিং দ্বারা সমর্থিত
শ্রেণী TcpSocketBase. বেশ কয়েকটি বৈকল্পিক সমর্থিত, সহ জন্য RFC 793 (কোন ভিড় নেই
নিয়ন্ত্রণ), তাহো, রেনো, ওয়েস্টউড, ওয়েস্টউড+ এবং নিউরেনো। নিউরেনো ডিফল্টরূপে ব্যবহৃত হয়। দেখা
কিভাবে ব্যবহৃত ডিফল্ট TCP ভেরিয়েন্ট পরিবর্তন করতে হয় তার জন্য এই নথির ব্যবহার বিভাগ
সিমুলেশন।

ব্যবহার
অনেক ক্ষেত্রে, টিসিপির ব্যবহার অ্যাপ্লিকেশন স্তরে বলে সেট করা হয় ns-3
অ্যাপ্লিকেশন কোন ধরনের সকেট কারখানা ব্যবহার করতে হবে।

সাহায্যকারী ফাংশন ব্যবহার করে সংজ্ঞায়িত src/applications/helper এবং src/network/helper, এখানে
কিভাবে একজন টিসিপি রিসিভার তৈরি করবে:

// এই প্যাকেটগুলি গ্রহণ করতে স্টার "হাব" এ একটি প্যাকেট সিঙ্ক তৈরি করুন
uint16_t পোর্ট = 50000;
ঠিকানা sinkLocalAddress(InetSocketAddress (Ipv4Address::GetAny (), পোর্ট));
PacketSinkHelper sinkHelper ("ns3::TcpSocketFactory", sinkLocalAddress);
ApplicationContainer sinkApp = sinkHelper.Install (serverNode);
sinkApp.Start (সেকেন্ড (1.0));
sinkApp.Stop (সেকেন্ড (10.0));

একইভাবে, নিচের স্নিপেট টিসিপি ব্যবহার করার জন্য OnOffApplication ট্রাফিক সোর্স কনফিগার করে:

// সার্ভারে TCP পাঠাতে অনঅফ অ্যাপ্লিকেশন তৈরি করুন
OnOffHelper clientHelper ("ns3::TcpSocketFactory", ঠিকানা ());

সতর্ক পাঠক উপরে নোট করবেন যে আমরা একটি বিমূর্ত ভিত্তির TypeId নির্দিষ্ট করেছি
শ্রেণী টিসিপিসকেট ফ্যাক্টরি. স্ক্রিপ্ট কিভাবে বলে ns-3 যে এটা নেটিভ চায় ns-3 বিভিন্ন TCP
বনাম অন্য কিছু? ঠিক আছে, যখন নোডে ইন্টারনেট স্ট্যাক যোগ করা হয়, তখন ডিফল্ট TCP
বাস্তবায়ন যে নোড একত্রিত হয় ns-3 টিসিপি। এই হিসাবে ওভাররাইড করা যেতে পারে
নেটওয়ার্ক সিমুলেশন ক্র্যাডল ব্যবহার করার সময় আমরা নীচে দেখাই। সুতরাং, ডিফল্টরূপে, ব্যবহার করার সময় ns-3
helper API, ইন্টারনেট স্ট্যাকের সাথে নোডের সাথে একত্রিত TCP হল নেটিভ ns-3
টিসিপি।

TCP-এর আচরণ কনফিগার করতে, এর মাধ্যমে বেশ কয়েকটি পরামিতি রপ্তানি করা হয় ns-3
বৈশিষ্ট্য সিস্টেম। এই নথিভুক্ত করা হয় অক্সিজেন
<http://www.nsnam.org/doxygen/classns3_1_1_tcp_socket.html> শ্রেনীর জন্য TcpSocket। জন্য
উদাহরণ, সর্বোচ্চ সেগমেন্ট সাইজ একটি সেটেবল অ্যাট্রিবিউট।

ইন্টারনেট স্ট্যাক-সম্পর্কিত অবজেক্ট তৈরি হওয়ার আগে ডিফল্ট সকেট টাইপ সেট করতে, এক
সিমুলেশন প্রোগ্রামের শীর্ষে নিম্নলিখিত বিবৃতি রাখতে পারে:

Config::SetDefault ("ns3::TcpL4Protocol::SocketType", StringValue ("ns3::TcpTahoe"));

ব্যবহারকারীদের জন্য যারা প্রকৃত সকেটে একটি পয়েন্টার রাখতে চান (যাতে সকেট অপারেশন পছন্দ করে
Bind(), সেটিং সকেট অপশন, ইত্যাদি প্রতি-সকেট ভিত্তিতে করা যেতে পারে), Tcp সকেট করতে পারে
ব্যবহার করে তৈরি করা হবে সকেট::CreateSocket() পদ্ধতি TypeId পাস হয়েছে
CreateSocket() টাইপের হতে হবে ns3::সকেট ফ্যাক্টরি, তাই অন্তর্নিহিত সকেট কনফিগার করা হচ্ছে
অন্তর্নিহিত TcpL4Protocol-এর সাথে যুক্ত অ্যাট্রিবিউটটি টুইডলিং করে টাইপ করতে হবে
বস্তু এটি পেতে সবচেয়ে সহজ উপায় অ্যাট্রিবিউট কনফিগারেশনের মাধ্যমে হবে
পদ্ধতি. নীচের উদাহরণে, জিরোথ পেতে নোড কন্টেইনার "n0n1" অ্যাক্সেস করা হয়েছে
উপাদান, এবং এই নোডে একটি সকেট তৈরি করা হয়েছে:

// সকেট তৈরি করুন এবং আবদ্ধ করুন...
TypeId tid = TypeId::LookupByName ("ns3::TcpTahoe");
Config::Set ("/NodeList/*/$ns3::TcpL4Protocol/SocketType", TypeIdValue (tid));
Ptr localSocket =
সকেট::CreateSocket (n0n1.Get (0), TcpSocketFactory::GetTypeId ());

উপরে, নোড নম্বরের জন্য "*" ওয়াইল্ড কার্ডটি অ্যাট্রিবিউট কনফিগারেশন সিস্টেমে পাস করা হয়েছে,
যাতে সমস্ত নোডের সমস্ত ভবিষ্যত সকেট তাহোতে সেট করা হয়, শুধু নোড 'n0n1.Get (0)'-তে নয়।
যদি কেউ এটিকে শুধুমাত্র নির্দিষ্ট নোডের মধ্যে সীমাবদ্ধ করতে চায় তবে একজনকে এরকম কিছু করতে হবে:

// সকেট তৈরি করুন এবং আবদ্ধ করুন...
TypeId tid = TypeId::LookupByName ("ns3::TcpTahoe");
std::stringstream nodeId;
nodeId << n0n1.Get (0)->GetId ();
std::string specificNode = "/NodeList/" + nodeId.str () + "/$ns3::TcpL4Protocol/SocketType";
Config::Set (নির্দিষ্ট নোড, TypeIdValue (tid));
Ptr localSocket =
সকেট::CreateSocket (n0n1.Get (0), TcpSocketFactory::GetTypeId ());

একবার একটি TCP সকেট তৈরি হয়ে গেলে, কেউ প্রচলিত সকেট যুক্তি অনুসরণ করতে চাইবে এবং হয়
সংযোগ() এবং পাঠান() (একটি টিসিপি ক্লায়েন্টের জন্য) বা আবদ্ধ(), শুনুন(), এবং গ্রহণ করুন() (টিসিপির জন্য)
সার্ভার)। কিভাবে সকেট ব্যবহার করা হয় তার পর্যালোচনার জন্য সকেট-এপিআই দেখুন ns-3.

ভ্যালিডেশন
বেশ কিছু TCP বৈধতা পরীক্ষার ফলাফল পাওয়া যাবে উইকি পৃষ্ঠা এই বর্ণনা
বাস্তবায়ন.

বর্তমান সীমাবদ্ধতা
· SACK সমর্থিত নয়

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

NSC আগে পোর্ট করা হয়েছে ns-2 এবং OMNeT++, এবং যোগ করা হয়েছিল ns-3 সেপ্টেম্বরে
2008 (ns-3.2 প্রকাশ)। এই বিভাগটি বর্ণনা করে ns-3 NSC এর পোর্ট এবং এটি কীভাবে ব্যবহার করবেন।

কিছু পরিমাণে, এনএসসি-কে লিনাক্স কার্নেল সমর্থন দ্বারা বাদ দেওয়া হয়েছে সরাসরি কোড
ফাঁসি (DCE). যাইহোক, NSC এখনও বেক বিল্ড সিস্টেমের মাধ্যমে উপলব্ধ। এনএসসি
লিনাক্স কার্নেল 2.6.18 এবং 2.6.26 সমর্থন করে, কিন্তু কার্নেলের নতুন সংস্করণ করা হয়নি
পোর্ট করা

পূর্বশর্ত
বর্তমানে, NSC পরীক্ষা করা হয়েছে এবং এই প্ল্যাটফর্মগুলিতে কাজ করার জন্য দেখানো হয়েছে: Linux i386 এবং Linux
x86-64। NSC powerpc সমর্থন করে না। FreeBSD বা OS X তে ব্যবহার করা অসমর্থিত (যদিও এটি
কাজ করতে সক্ষম হতে পারে)।

NSC নির্মাণের জন্য প্যাকেজ ফ্লেক্স এবং বাইসন প্রয়োজন।

কনফিগার করার পদ্ধতি এবং ডাউনলোড
ns-3.17 বা তার পরে, NSC হয় তার নিজস্ব সংগ্রহস্থল থেকে আলাদাভাবে ডাউনলোড করতে হবে,
অথবা ডাউনলোড করার সময় ব্যবহার করুন সেকা নির্মাণ করা পদ্ধতি of ns-3.

ns-3.17 বা পরবর্তী রিলিজের জন্য, বেক ব্যবহার করার সময়, একজনকে অবশ্যই একটি অংশ হিসাবে NSC কনফিগার করতে হবে
"অ্যালিনোন" কনফিগারেশন, যেমন:

$cd বেক
$ python bake.py কনফিগার করুন -e ns-allinone-3.19
$python bake.py ডাউনলোড করুন
$ python bake.py বিল্ড

একটি প্রকাশিত সংস্করণের পরিবর্তে, কেউ নির্দিষ্ট করে ns-3 বিকাশ সংস্করণ ব্যবহার করতে পারে
উপরের কনফিগার ধাপে "ns-3-অ্যালিনোন"।

NSC থেকেও ডাউনলোড করা যেতে পারে এর ডাউনলোড সাইট Mercurial ব্যবহার করে:

$hg ক্লোন https://secure.wand.net.nz/mercurial/nsc

ns-3.17 প্রকাশের আগে, এনএসসি অ্যালিনোন টারবলে অন্তর্ভুক্ত ছিল এবং প্রকাশিত হয়েছিল
সংস্করণটি আলাদাভাবে ডাউনলোড করার দরকার নেই।

ভবন এবং যাচাই করা হচ্ছে
এনএসসি বেক বিল্ড প্রক্রিয়ার অংশ হিসাবে নির্মিত হতে পারে; বিকল্পভাবে, কেউ এনএসসি তৈরি করতে পারে
নিজেই তার বিল্ড সিস্টেম ব্যবহার করে; যেমন:

$cd nsc-dev
$ python scons.py

একবার এনএসসি ম্যানুয়ালি বা বেক সিস্টেমের মাধ্যমে তৈরি হয়ে গেলে, তে পরিবর্তন করুন ns-3
উৎস ডিরেক্টরি এবং নিম্নলিখিত কনফিগারেশন চালানোর চেষ্টা করুন:

$ ./waf কনফিগার করুন

যদি NSC পূর্বে তৈরি করা হয় এবং waf দ্বারা পাওয়া যায়, তাহলে আপনি দেখতে পাবেন:

নেটওয়ার্ক সিমুলেশন ক্র্যাডল: সক্ষম

যদি NSC পাওয়া না যায়, আপনি দেখতে পাবেন:

নেটওয়ার্ক সিমুলেশন ক্র্যাডল: সক্ষম নয় (NSC পাওয়া যায়নি (বিকল্প দেখুন --with-nsc))

এই ক্ষেত্রে, আপনাকে অবশ্যই এনএসসি লাইব্রেরির সাথে আপেক্ষিক বা পরম পথ পাস করতে হবে
"--with-nsc" কনফিগার বিকল্প; যেমন

$ ./waf কনফিগার --with-nsc=/path/to/my/nsc/directory

জন্য ns-3 ns-3.17 রিলিজের আগে রিলিজ, ব্যবহার করে build.py ns-3-অ্যালিননে স্ক্রিপ্ট
ডিরেক্টরি, NSC ডিফল্টরূপে নির্মিত হবে যদি না প্ল্যাটফর্ম এটি সমর্থন করে না। প্রতি
নির্মাণ করার সময় স্পষ্টভাবে এটি নিষ্ক্রিয় করুন ns-3, টাইপ করুন

$ ./waf কনফিগার --enable-examples --enable-tests --disable-nsc

যদি waf NSC সনাক্ত করে, তাহলে বিল্ডিং ns-3 NSC এর সাথে waf এর সাথে একইভাবে সঞ্চালিত হয়
এটা ছাড়া একদা ns-3 নির্মিত হয়েছে, নিম্নলিখিত পরীক্ষা স্যুট চালানোর চেষ্টা করুন:

$ ./test.py -s ns3-tcp-ইন্টারঅপারেবিলিটি

যদি এনএসসি সফলভাবে তৈরি করা হয়, তাহলে নিম্নলিখিত পরীক্ষাটি ফলাফলে দেখানো উচিত:

PASS TestSuite ns3-tcp-ইন্টারঅপারেবিলিটি

এটি নিশ্চিত করে যে NSC ব্যবহারের জন্য প্রস্তুত।

ব্যবহার
কয়েকটি উদাহরণ ফাইল আছে। চেষ্টা করুন:

$./waf --run tcp-nsc-zoo
$ ./waf --run tcp-nsc-lfn

এই উদাহরণ কিছু জমা হবে .pcap আপনার ডিরেক্টরির মধ্যে ফাইল, যা দ্বারা পরীক্ষা করা যেতে পারে
tcpdump বা wireshark.

এর তাকান উদাহরণ/tcp/tcp-nsc-zoo.cc কিছু সাধারণ ব্যবহারের জন্য ফাইল। এটা কিভাবে
নেটিভ ব্যবহার থেকে ভিন্ন ns-3 টিসিপি? NSC ব্যবহার করার সময় একটি প্রধান কনফিগারেশন লাইন আছে
এবং শীর্ষ XNUMX গ্লোবাল HR এক্সিলেন্স অ্যাওয়ার্ডের ns-3 সহায়ক API, যা সেট করা দরকার:

ইন্টারনেটস্ট্যাকহেল্পার ইন্টারনেটস্ট্যাক;

internetStack.SetNscStack ("liblinux2.6.26.so");
// এটি NSCs Linux 0 স্ট্যাকে নোড 1 এবং 2.6.26 স্যুইচ করে।
internetStack.Install (n. পান(0));
internetStack.Install (n. পান(1));

মূল লাইন হল SetNscStack. এটি ইন্টারনেটস্ট্যাক সাহায্যকারীকে একত্রিত করতে বলে
নেটিভের পরিবর্তে NSC TCP-এর উদাহরণ ns-3 অবশিষ্ট নোডগুলিতে TCP. এটা গুরুত্বপূর্ণ
যে এই ফাংশন বলা হবে আগে কলিং ইনস্টল () ফাংশন, যেমন উপরে দেখানো হয়েছে।

কোন স্ট্যাক ব্যবহার করার জন্য উপলব্ধ? বর্তমানে, লিনাক্স 2.6.18 এবং লিনাক্সের উপর ফোকাস করা হয়েছে
জন্য 2.6.26 স্ট্যাক ns-3. কোন স্ট্যাকগুলি তৈরি করা হয়েছিল তা দেখতে, কেউ নিম্নলিখিত অনুসন্ধানটি সম্পাদন করতে পারে
কমান্ড এ ns-3 শীর্ষ স্তরের ডিরেক্টরি:

$ খুঁজুন nsc -name "*.so" -type f
nsc/linux-2.6.18/liblinux2.6.18.so
nsc/linux-2.6.26/liblinux2.6.26.so

এটি আমাদের বলে যে আমরা হয় লাইব্রেরির নাম liblinux2.6.18.so পাস করতে পারি বা
liblinux2.6.26.so উপরের কনফিগারেশন ধাপে।

গাদা কনফিগারেশন
NSC TCP একই কনফিগারেশন বৈশিষ্ট্যগুলি ভাগ করে যা TCP সকেট জুড়ে সাধারণ
উপরে বর্ণিত এবং নথিভুক্ত অক্সিজেন

উপরন্তু, NSC TCP-এ অনেক কনফিগারেশন ভেরিয়েবল রপ্তানি করে ns-3 বৈশিষ্ট্যাবলী
সিস্টেম, একটি মাধ্যমে sysctl- মত ইন্টারফেস। মধ্যে উদাহরণ/tcp/tcp-nsc-zoo উদাহরণ, আপনি দেখতে পারেন
নিম্নলিখিত কনফিগারেশন:

// এটি নোড 1 এ TCP SACK, wscale এবং টাইমস্ট্যাম্প নিষ্ক্রিয় করে (গুণাবলী
sysctl-মান প্রতিনিধিত্ব করে)।
Config::Set ("/NodeList/1/$ns3::Ns3NscStack<linux2.6.26>/net.ipv4.tcp_sack",
স্ট্রিং ভ্যালু ("0"));
Config::Set ("/NodeList/1/$ns3::Ns3NscStack<linux2.6.26>/net.ipv4.tcp_timestamps",
স্ট্রিং ভ্যালু ("0"));
Config::Set ("/NodeList/1/$ns3::Ns3NscStack<linux2.6.26>/net.ipv4.tcp_window_scaling",
স্ট্রিং ভ্যালু ("0"));

এই অতিরিক্ত কনফিগারেশন ভেরিয়েবল নেটিভের জন্য উপলব্ধ নয় ns-3 টিসিপি।

এছাড়াও মনে রাখবেন যে টিসিপি বৈশিষ্ট্যগুলির জন্য ডিফল্ট মান ns-3 TCP nsc TCP থেকে আলাদা হতে পারে
বাস্তবায়ন. বিশেষভাবে মধ্যে ns-3:

1. TCP ডিফল্ট MSS হল 536

2. TCP বিলম্বিত Ack সংখ্যা 2

তাই nsc এবং ব্যবহার করে প্রাপ্ত ফলাফলের মধ্যে তুলনা করার সময় ns-3 টিসিপি, যত্ন
এই মানগুলি যথাযথভাবে সেট করা হয়েছে তা নিশ্চিত করার জন্য অবশ্যই নেওয়া উচিত। দেখা
একটি উদাহরণের জন্য /examples/tcp/tcp-nsc-comparision.cc।

এনএসসি এপিআই
এই উপধারাটি API বর্ণনা করে যা NSC উপস্থাপন করে ns-3 বা অন্য কোন সিমুলেটর। এনএসসি
সংজ্ঞায়িত করা হয়েছে এমন কয়েকটি ক্লাসের আকারে এর API প্রদান করে
sim/sim_interface.h nsc ডিরেক্টরিতে।

· INetStack INetStack-এ অপারেটিং সিস্টেম নেটওয়ার্কের জন্য 'নিম্ন স্তরের' ক্রিয়াকলাপ রয়েছে
স্ট্যাক, যেমন ইন এবং নেটওয়ার্ক স্ট্যাকের থেকে এবং আউটপুট ফাংশন (এটিকে হিসাবে মনে করুন
'নেটওয়ার্ক ড্রাইভার ইন্টারফেস'। নতুন TCP বা UDP সকেট তৈরি করার ফাংশনও রয়েছে।

· ISendCallback এটি NSC দ্বারা বলা হয় যখন একটি প্যাকেট নেটওয়ার্কে পাঠানো উচিত।
এই সিমুলেটরটিকে সিমুলেটরে প্যাকেটটি পুনরায় ইনজেকশন করতে এই কলব্যাকটি ব্যবহার করা উচিত
প্রকৃত ডেটা তার গন্তব্যে বিতরণ/রুটে করা যেতে পারে, যেখানে এটি শেষ পর্যন্ত হবে
Receive()-এ হস্তান্তর করা হয় (এবং অবশেষে রিসিভারদের কাছে NSC ইনস্ট্যান্সের মাধ্যমে ফিরে আসে
INetStack->if_receive() )।

· INetStreamSocket এটি একটি নির্দিষ্ট সংযোগের শেষ পয়েন্ট (ফাইল
বর্ণনাকারী)। এতে এই এন্ডপয়েন্টে কাজ করার পদ্ধতি রয়েছে, যেমন সংযোগ, সংযোগ বিচ্ছিন্ন,
গ্রহণ করুন, শুনুন, পাঠান_ডেটা/পড়ুন_ডেটা, ...

· IInterruptCallback এতে ওয়েকআপ কলব্যাক রয়েছে, যেটিকে NSC যখনই কল করে
আগ্রহের কিছু ঘটে। wakeup() কে অপারেটিং এর প্রতিস্থাপন হিসাবে ভাবুন
সিস্টেম ওয়েকআপ ফাংশন: যখনই অপারেটিং সিস্টেম জেগে উঠবে এমন একটি প্রক্রিয়া আছে
একটি অপারেশন সম্পূর্ণ হওয়ার জন্য অপেক্ষা করা হচ্ছে (উদাহরণস্বরূপ TCP হ্যান্ডশেক চলাকালীন
connect()), NSC wakeup() কলব্যাক আহ্বান করে যাতে সিমুলেটরকে স্টেট চেক করার অনুমতি দেয়
এর সংযোগের শেষ পয়েন্টে পরিবর্তন।

ns-3 বাস্তবায়ন
সার্জারির ns-3 বাস্তবায়ন উপরের NSC API ব্যবহার করে, এবং নিম্নরূপ প্রয়োগ করা হয়।

তিনটি প্রধান অংশ হল:

· ns3::NscTcpL4 প্রোটোকল: Ipv4L4Protocol এর একটি সাবক্লাস (এবং দুটি nsc ক্লাস: ISendCallback
এবং IInterruptCallback)

· ns3::NscTcpSocketImpl: TcpSocket এর একটি সাবক্লাস

· ns3::NscTcpSocketFactoryImpl: নতুন NSC সকেট তৈরির কারখানা

src/internet/model/nsc-tcp-l4-প্রটোকল প্রধান শ্রেণী। আরম্ভ করার পরে, এটি একটি লোড করে
nsc নেটওয়ার্ক স্ট্যাক ব্যবহার করার জন্য (dlopen() এর মাধ্যমে)। এই শ্রেণীর প্রতিটি উদাহরণ একটি ভিন্ন ব্যবহার করতে পারে
স্ট্যাক ব্যবহার করার জন্য স্ট্যাক (=ভাগ করা লাইব্রেরি) SetNscLibrary() পদ্ধতি ব্যবহার করে সেট করা হয়েছে (এতে
ইন্টারনেট স্ট্যাক হেল্পারের মাধ্যমে পরোক্ষভাবে বলা হয় সময়)। nsc স্ট্যাক তারপর সেট আপ করা হয়
সেই অনুযায়ী (টাইমার ইত্যাদি)। NscTcpL4Protocol::Receive() ফাংশন প্যাকেটটি হস্তান্তর করে
পরবর্তী প্রক্রিয়াকরণের জন্য nsc স্ট্যাকে (একটি সম্পূর্ণ tcp/ip প্যাকেট হতে হবে) গ্রহণ করে। প্রতি
প্যাকেট পাঠাতে সক্ষম হন, এই ক্লাসটি nsc send_callback পদ্ধতি প্রয়োগ করে। এই পদ্ধতি
যখনই nsc স্ট্যাক নেটওয়ার্কে একটি প্যাকেট পাঠাতে চায় তখনই nsc দ্বারা ডাকা হয়। এর
আর্গুমেন্ট হল একটি কাঁচা বাফার, যেখানে একটি সম্পূর্ণ TCP/IP প্যাকেট এবং একটি দৈর্ঘ্যের মান রয়েছে। এই
পদ্ধতি তাই কাঁচা তথ্য একটি Ptr রূপান্তর করতে হবে দ্বারা ব্যবহারযোগ্য ns-3। করার জন্য
বিভিন্ন ipv4 হেডার সমস্যা এড়িয়ে চলুন, nsc ip হেডার অন্তর্ভুক্ত নয়। পরিবর্তে, tcp
হেডার এবং প্রকৃত পেলোড Ptr এ রাখা হয় , এর পর প্যাকেট হয়
প্যাকেট পাঠানোর জন্য লেয়ার 3 এ চলে গেছে (আর কোন বিশেষ চিকিত্সার প্রয়োজন নেই
কোড পাঠাতে পাথে)।

এই ক্লাস কল ns3::NscTcpSocketImpl উভয় nsc wakeup() কলব্যাক থেকে এবং থেকে
পাথ গ্রহণ করুন (সম্ভবত সারিবদ্ধ ডেটা পাঠানোর জন্য নির্ধারিত হয়েছে তা নিশ্চিত করতে)।

src/internet/model/nsc-tcp-সকেট-ইম্পল nsc সকেট ইন্টারফেস প্রয়োগ করে। প্রতিটি উদাহরণ
এর নিজস্ব nscTcpSocket আছে। Send() ডেটা nsc স্ট্যাকের মাধ্যমে হস্তান্তর করা হবে
m_nscTcpSocket->send_data()। (এবং nsc-tcp-l4 নয়, এটি তুলনামূলক প্রধান পার্থক্য
থেকে ns-3 TCP)। ক্লাসটি অন্তর্নিহিতের আগে Send() ডেটাও সারিবদ্ধ করে
বর্ণনাকারী একটি প্রতিষ্ঠিত অবস্থায় প্রবেশ করেছে। এই ক্লাসটি nsc-tcp-l4 থেকে বলা হয়
ক্লাস, যখন nsc-tcp-l4 wakeup() কলব্যাক nsc দ্বারা আহ্বান করা হয়। nsc-tcp-সকেট-ইম্পল তারপর
বর্তমান সংযোগের অবস্থা (SYN_SENT, ESTABLISHED, LISTEN...) এবং সময়সূচী পরীক্ষা করে
প্রয়োজন অনুযায়ী উপযুক্ত কলব্যাক, যেমন একটি LISTEN সকেট একটি নতুন কিনা তা দেখার জন্য Accept নির্ধারণ করবে
সংযোগ অবশ্যই গ্রহণ করতে হবে, একটি প্রতিষ্ঠিত সকেট লেখার জন্য কোনো মুলতুবি থাকা ডেটার সময়সূচী করে,
একটি রিড কলব্যাক নির্ধারণ করুন, ইত্যাদি

মনে রাখবেন যে ns3::NscTcpSocketImpl nsc-tcp-এর সাথে সরাসরি ইন্টারঅ্যাক্ট করে না: পরিবর্তে, ডেটা
nsc-তে পুনঃনির্দেশিত। nsc-tcp একটি নোডের nsc-tcp-সকেটগুলিকে কল করে যখন এর ওয়েকআপ কলব্যাক হয়
এনএসসি দ্বারা আহ্বান করা হয়েছে।

সীমাবদ্ধতা
· NSC শুধুমাত্র একক-ইন্টারফেস নোডগুলিতে কাজ করে; এটি একটি মাল্টি-ইন্টারফেস নোডে চালানোর চেষ্টা করছে
একটি প্রোগ্রাম ত্রুটি সৃষ্টি করবে।

· Cygwin এবং OS X PPC সমর্থিত নয়; OS X Intel সমর্থিত নয় তবে কাজ করতে পারে

· NSC-এর নন-লিনাক্স স্ট্যাক সমর্থিত নয় ns-3

· সমস্ত সকেট API কলব্যাক সমর্থিত নয়

আরও তথ্যের জন্য, দেখুন এই উইকি পৃষ্ঠা.

CoDel বেণী বাস্তবায়ন in ns-3
এই অধ্যায়টি CoDel ([Nic12], [Nic14]) সারি বাস্তবায়নের বর্ণনা করে ns-3.

ক্যাথলিন নিকোলস এবং ভ্যান জ্যাকবসন দ্বারা বাফারব্লোটের সমাধান হিসাবে বিকাশ করা হয়েছে [Buf14]
সমস্যা, CoDel (নিয়ন্ত্রিত বিলম্ব ব্যবস্থাপনা) হল একটি সারিবদ্ধ শৃঙ্খলা যা একটি প্যাকেট ব্যবহার করে
প্যাকেট ড্রপের বিষয়ে সিদ্ধান্ত নেওয়ার জন্য বিশ্রামের সময় (সারিতে থাকা সময়)।

মডেল বিবরণ
CoDel মডেলের সোর্স কোড ডিরেক্টরিতে অবস্থিত src/ইন্টারনেট/মডেল এবং
2টি ফাইল নিয়ে গঠিত codel-queue.h এবং codel-queue.cc একটি CoDelQueue ক্লাস সংজ্ঞায়িত করা এবং a
সহকারী CoDelTimestampTag ক্লাস। কোড পোর্ট করা হয়েছে ns-3 অ্যান্ড্রু ম্যাকগ্রেগরের উপর ভিত্তি করে
লিনাক্স কার্নেল কোড ডেভ তাহট এবং এরিক ডুমাজেট দ্বারা প্রয়োগ করা হয়েছে।

· ক্লাস CoDelQueue: এই ক্লাসটি প্রধান CoDel অ্যালগরিদম প্রয়োগ করে:

· CoDelQueue::DoEnqueue (): এই রুটিন আগের বর্তমান সময়ের সাথে একটি প্যাকেট ট্যাগ করে
সারিতে ঠেলে দিচ্ছে। টাইমস্ট্যাম্প ট্যাগ দ্বারা ব্যবহৃত হয় CoDelQueue::DoDequeue() থেকে
প্যাকেটের থাকার সময় গণনা করুন। যদি সারি প্যাকেট আগমনের উপর পূর্ণ হয়, এই
রুটিন প্যাকেট ড্রপ করবে এবং সারি ওভারফ্লো হওয়ার কারণে ড্রপের সংখ্যা রেকর্ড করবে,
যা সংরক্ষণ করা হয় m_dropOverLimit.

· CoDelQueue::ShouldDrop (): এই রুটিন CoDelQueue::DoDequeue()এর সাহায্যকারীর রুটিন
এটি নির্ধারণ করে যে প্যাকেটটি তার অবস্থানের সময়ের উপর ভিত্তি করে ফেলে দেওয়া উচিত কিনা।
যদি প্রবাস সময় উপরে যায় m_target এবং অন্তত জন্য ক্রমাগত উপরে থাকে
m_interval, রুটিন ফিরে সত্য নির্দেশ করে যে প্যাকেটটি ফেলে দেওয়া ঠিক আছে।
অন্যথায়, এটি ফিরে আসে মিথ্যা.

· CoDelQueue::DoDequeue (): এই রুটিন উপর ভিত্তি করে প্রকৃত প্যাকেট ড্রপ সঞ্চালিত হয়
CoDelQueue::ShouldDrop ()এর রিটার্ন মান এবং পরবর্তী ড্রপের সময়সূচী।

· ক্লাস CoDelTimestampTag: এই ক্লাসটি একটি প্যাকেটের জন্য টাইমস্ট্যাম্প ট্যাগিং প্রয়োগ করে। এই
ট্যাগ প্যাকেটের থাকার সময় গণনা করতে ব্যবহৃত হয় (সময়ের মধ্যে পার্থক্য
প্যাকেট সারিবদ্ধ করা হয় এবং এটিকে সারিতে ঠেলে দেওয়ার সময়)।

এর 2টি শাখা রয়েছে CoDelQueue::DoDequeue ():

1. যদি সারিটি বর্তমানে ড্রপিং স্টেটে থাকে, যার মানে বিশ্রামের সময় আছে
উপরে রইল m_target তুলনায় আরো জন্য m_interval, রুটিন নির্ধারণ করে যে এটি ঠিক আছে কিনা
ড্রপিং স্টেট ছেড়ে দিন অথবা পরবর্তী ড্রপের সময়। কখন CoDelQueue::ShouldDrop ()
আয় মিথ্যা, সারি ড্রপিং অবস্থা থেকে সরে যেতে পারে (সেট মি_ড্রপিং থেকে মিথ্যা).
অন্যথায়, সারিটি ক্রমাগত প্যাকেট ড্রপ করে এবং পরবর্তী ড্রপের সময় আপডেট করে
(m_dropপরবর্তীনিম্নলিখিত শর্তগুলির মধ্যে একটি পূরণ না হওয়া পর্যন্ত:

1. সারিটি খালি, যার উপর সারিটি ড্রপিং স্টেট ছেড়ে চলে যায় এবং প্রস্থান করে
CoDelQueue::ShouldDrop () রুটিন

2. CoDelQueue::ShouldDrop () আয় মিথ্যা (অর্থাৎ প্রবাসের সময় নিচে চলে যায়
m_target) যার উপর সারি ড্রপিং স্টেট ছেড়ে যায়;

3. পরবর্তী ড্রপের জন্য এখনও সময় হয়নি (m_dropপরবর্তী বর্তমান সময়ের চেয়ে কম)
যেটি আবার কন্ডিশন চেক করার জন্য পরবর্তী প্যাকেট ডিকিউর জন্য অপেক্ষা করে।

2. সারি ড্রপিং অবস্থায় না থাকলে, রুটিন ড্রপিং স্টেটে প্রবেশ করে এবং
প্রথম প্যাকেট ফেলে দিন যদি CoDelQueue::ShouldDrop () আয় সত্য (অর্থাৎ প্রবাস
সময় উপরে চলে গেছে m_target অন্তত m_interval প্রথমবার নাকি চলে গেছে
সারিটি ড্রপিং স্টেট ছেড়ে যাওয়ার পরে আবার উপরে)।

তথ্যসূত্র
[Nic12]

কে. নিকোলস এবং ভি. জ্যাকবসন, কন্ট্রোলিং কিউ বিলম্ব, এসিএম কিউ, ভলিউম। 10 নং 5, মে 2012।
এ অনলাইনে উপলব্ধ http://queue.acm.org/detail.cfm?id=2209336.

[Nic14]

কে. নিকোলস এবং ভি. জ্যাকবসন, ইন্টারনেট-ড্রাফ্ট: নিয়ন্ত্রিত বিলম্ব সক্রিয় সারি ব্যবস্থাপনা,
মার্চ 2014। অনলাইনে উপলব্ধ
http://tools.ietf.org/html/draft-nichols-tsvwg-codel-02.

[বুফ১৪]
Bufferbloat.net. অনলাইনে উপলব্ধ http://www.bufferbloat.net/.

আরোপ করা
CoDelQueue ক্লাসের মূল বৈশিষ্ট্যগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

· মোড: CoDel অপারেটিং মোড (বাইটিস, প্যাকেট, বা অবৈধ)। ডিফল্ট মোড হল BYTES।

· সর্বোচ্চ প্যাকেট: সারিতে থাকা সর্বোচ্চ সংখ্যক প্যাকেট। ডিফল্ট মান হল
DEFAULT_CODEL_LIMIT, যা 1000 প্যাকেট।

· ম্যাক্সবাইটস: সারি ধরে রাখতে পারে সর্বোচ্চ সংখ্যক বাইট। ডিফল্ট মান হল 1500*
DEFAULT_CODEL_LIMIT, যা 1500 * 1000 বাইট।

· MinBytes: CoDel অ্যালগরিদম মিনবাইট প্যারামিটার। ডিফল্ট মান হল 1500 বাইট।

· অন্তর: স্লাইডিং-নূন্যতম উইন্ডো। ডিফল্ট মান হল 100 ms

· টার্গেট: CoDel অ্যালগরিদম টার্গেট কিউ বিলম্ব। ডিফল্ট মান হল 5 ms

উদাহরণ
প্রথম উদাহরণটি হ'ল codel-vs-droptail-basic-test.cc মধ্যে অবস্থিত src/ইন্টারনেট/উদাহরণ। থেকে
ফাইলটি চালান (নীচের প্রথম আহ্বানটি উপলব্ধ কমান্ড-লাইন বিকল্পগুলি দেখায়):

$ ./waf --run "codel-vs-droptail-basic-test --PrintHelp"
$ ./waf --run "codel-vs-droptail-basic-test --queueType=CoDel --pcapFileName=codel.pcap --cwndTrFileName=cwndCodel.tr"

পূর্ববর্তী কমান্ড থেকে প্রত্যাশিত আউটপুট দুটি ফাইল: codel.pcap ফাইল এবং
cwndCoDel.tr (ASCII ট্রেস) ফাইল .pcap ফাইলটি ওয়্যারশার্ক ব্যবহার করে বিশ্লেষণ করা যেতে পারে বা
tcptrace:

$ tcptrace -l -r -n -W codel.pcap

দ্বিতীয় উদাহরণটি হ'ল codel-vs-droptail-asymmetric.cc মধ্যে অবস্থিত src/ইন্টারনেট/উদাহরণ.
এই উদাহরণটি একটি সাধারণ কেবল মডেম স্থাপনার দৃশ্যের মডেল করার উদ্দেশ্যে করা হয়েছে। চালানোর জন্য
ফাইল:

$ ./waf --run "কোডেল-বনাম-ড্রপটেল-অসমমিতিক --প্রিন্টহেল্প"
$ ./waf --run codel-vs-droptail-asymmetric

পূর্ববর্তী কমান্ড থেকে প্রত্যাশিত আউটপুট হল ছয়টি pcap ফাইল:

কোডেল-বনাম-ড্রপটেল-অসমমিতিক-CoDel-server-lan.pcap

কোডেল-বনাম-ড্রপটেল-অসমমিত-কোডেল-রাউটার-ওয়ান.pcap

কোডেল-বনাম-ড্রপটেল-অসিমেট্রিক-কোডেল-রাউটার-ল্যান.pcap

কোডেল-বনাম-ড্রপটেল-অসমমিতিক-CoDel-cmts-wan.pcap

কোডেল-বনাম-ড্রপটেল-অসমমিতিক-CoDel-cmts-lan.pcap

কোডেল-বনাম-ড্রপটেল-অসিমেট্রিক-কোডেল-হোস্ট-ল্যান.pcap

একটি বৈশিষ্ট্য ফাইল:

কোডেল-বনাম-ড্রপটেল-অসিমেট্রিক-CoDel.attr

পাঁচটি ASCII ট্রেস ফাইল:

কোডেল-বনাম-ড্রপটেল-অসমমিত-কোডেল-ড্রপ.tr

কোডেল-বনাম-ড্রপটেল-অসমমিতিক-CoDel-drop-state.tr

কোডেল-বনাম-ড্রপটেল-অসিমেট্রিক-CoDel-sojourn.tr

কোডেল-বনাম-ড্রপটেল-অসিমেট্রিক-কোডেল-লেংথ.tr

কোডেল-বনাম-ড্রপটেল-অসিমেট্রিক-CoDel-cwnd.tr

ভ্যালিডেশন
CoDel মডেল ব্যবহার করে পরীক্ষা করা হয় CoDelQueueTestSuite শ্রেণীতে সংজ্ঞায়িত
src/internet/test/codel-queue-test-suite.cc. স্যুটে 5টি পরীক্ষার কেস রয়েছে:

· পরীক্ষা 1: প্রথম পরীক্ষাটি কোন ড্রপ ছাড়াই সারি/ডিকিউ পরীক্ষা করে এবং নিশ্চিত করে যে
CoDel গুণাবলী সঠিকভাবে সেট করা যেতে পারে।

· পরীক্ষা 2: দ্বিতীয় পরীক্ষা সারি ওভারফ্লো কারণে ড্রপ দিয়ে সারি পরীক্ষা করে।

· পরীক্ষা 3: তৃতীয় পরীক্ষাটি লিনাক্সের সুস্পষ্ট পোর্টের বিরুদ্ধে নিউটনস্টেপ() পাটিগণিত পরীক্ষা করে
বাস্তবায়ন

· পরীক্ষা 4: চতুর্থ পরীক্ষাটি লিনাক্সের স্পষ্ট পোর্টের বিরুদ্ধে ControlLaw() পরীক্ষা করে
বাস্তবায়ন

· পরীক্ষা 5: পঞ্চম পরীক্ষা CoDel অনুযায়ী ড্রপ দিয়ে সারি/ডিকিউ পরীক্ষা করে
অ্যালগরিদম

নিম্নলিখিত কমান্ড ব্যবহার করে পরীক্ষা স্যুট চালানো যেতে পারে:

$ ./waf কনফিগার --enable-examples --enable-tests
$ ./waf বিল্ড
$ ./test.py -s কোডেল-কিউ

or

$ NS_LOG="CoDelQueue" ./waf --run "test-runner --suite=codel-queue"
পৃষ্ঠা বিরতি

কম দাম ওয়্যারলেস ব্যক্তিগত এলাকায় নেটওয়ার্ক (LR-WPAN)


এই অধ্যায়টি নিম্ন-দর, বেতারের জন্য ns-3 মডেলের বাস্তবায়ন বর্ণনা করে
পার্সোনাল এরিয়া নেটওয়ার্ক (LR-WPAN) যেমন IEEE স্ট্যান্ডার্ড 802.15.4 (2006) দ্বারা নির্দিষ্ট করা হয়েছে।

মডেল বিবরণ
lr-wpan মডিউলের সোর্স কোড ডিরেক্টরিতে থাকে src/lr-wpan.

নকশা
মডেল ডিজাইনটি স্থাপত্যের দৃষ্টিকোণ থেকে মানকে ঘনিষ্ঠভাবে অনুসরণ করে।
[ছবি] lr-wpan মডেলের আর্কিটেকচার এবং সুযোগ।UNINDENT

চিত্রের ধূসর এলাকাগুলি (IEEE Std. 3-802.15.4 এর চিত্র 2006 থেকে অভিযোজিত) দেখায়
মডেলের সুযোগ।

নিকোলা বাল্ডোর স্পেকট্রাম নেটডিভাইসটি বাস্তবায়নের ভিত্তি।

বাস্তবায়নটি ঝেং এবং লি দ্বারা বিকশিত ns-2 মডেলগুলি থেকেও ধার নেওয়ার পরিকল্পনা করেছে
ভবিষ্যতে

API গুলি
এপিআইগুলি নিবিড়ভাবে মান অনুসরণ করে, যা ns-3 নামকরণের প্রথা এবং ইডিয়মের জন্য অভিযোজিত। দ্য
API গুলি নিম্নলিখিত হিসাবে দেখানো হয়েছে পরিষেবা আদিম ধারণার চারপাশে সংগঠিত
চিত্রটি IEEE Std এর চিত্র 14 থেকে অভিযোজিত হয়েছে। 802.15.4-2006।
[ছবি] পরিষেবা আদিম। UNINDENT

API গুলি চারটি ধারণামূলক পরিষেবা এবং পরিষেবা অ্যাক্সেস পয়েন্ট (SAP) ঘিরে সংগঠিত:

· MAC ডেটা পরিষেবা (MCPS)

· MAC ম্যানেজমেন্ট সার্ভিস (MLME)

· PHY ডেটা পরিষেবা (PD)

· PHY ম্যানেজমেন্ট সার্ভিস (PLME)

সাধারণভাবে, আদিমকে নিম্নরূপ প্রমিত করা হয় (যেমন IEEE এর Sec 7.1.1.1.1
802.15.4-2006)::

MCPS-DATA.request (
SrcAddrMode,
DstAddrMode,
DstPANId,
DstAddr,
msdu দৈর্ঘ্য,
এমএসডিইউ,
msdu হ্যান্ডেল,
TxOptions,
নিরাপত্তার মাত্রা,
কীআইডিমোড,
মূল উৎস,
কী ইনডেক্স
)

এটি ns-3 ক্লাস এবং পদ্ধতিগুলির মানচিত্র যেমন::

struct McpsDataRequest প্যারামিটার
{
uint8_t m_srcAddrMode;
uint8_t m_dstAddrMode;
...
};

অকার্যকর
LrWpanMac::McpsDataRequest (McpsDataRequestParameters params)
{
...
}

ম্যাক
MAC বর্তমানে বীকনিং ছাড়াই আনস্লটেড CSMA/CA ভেরিয়েন্ট প্রয়োগ করে। বর্তমানে
সমন্বয়কারী এবং সংশ্লিষ্ট API-এর জন্য কোন সমর্থন নেই।

বাস্তবায়িত MAC কন্টিকির NullMAC-এর অনুরূপ, অর্থাৎ, ঘুমের বৈশিষ্ট্য ছাড়াই একটি MAC।
রেডিওটি সর্বদা সক্রিয় (গ্রহণ বা প্রেরণ), সম্পূর্ণরূপে বন্ধ বলে ধরে নেওয়া হয়
নিচে CCA সম্পাদন করার সময় ফ্রেম অভ্যর্থনা অক্ষম করা হয় না।

সমর্থিত প্রধান API হল ডেটা ট্রান্সফার API (McpsDataRequest/Indication/Confirm)।
CSMA/CA Stc 802.15.4-2006 অনুযায়ী, বিভাগ 7.5.1.4 সমর্থিত। ফ্রেম অভ্যর্থনা এবং
Std 802.15.4-2006 অনুযায়ী প্রত্যাখ্যান, ধারা 7.5.6.2 সমর্থিত, সহ
স্বীকৃতি শুধুমাত্র সংক্ষিপ্ত ঠিকানা সম্পূর্ণরূপে বাস্তবায়িত. বিভিন্ন ট্রেস সূত্র আছে
সমর্থিত, এবং ট্রেস সোর্সগুলিকে সিঙ্কে আটকানো যেতে পারে।

PHY
শারীরিক স্তর উপাদান একটি Phy মডেল, একটি ত্রুটি হার মডেল, এবং একটি ক্ষতি নিয়ে গঠিত
মডেল. ত্রুটির হার মডেলটি বর্তমানে IEEE 802.15.4 2.4 GHz এর ত্রুটির হারকে মডেল করে
OQPSK-এর জন্য AWGN চ্যানেল; মডেলের বিবরণ IEEE Std 802.15.4-2006 এ পাওয়া যাবে,
বিভাগ E.4.1.7. Phy মডেলটি SpectrumPhy এর উপর ভিত্তি করে এবং এটি স্পেসিফিকেশন অনুসরণ করে
IEEE Std 6-802.15.4 এর ধারা 2006-এ বর্ণিত। এটি PHY পরিষেবার স্পেসিফিকেশন মডেল করে,
PPDU ফর্ম্যাট, PHY ধ্রুবক এবং PIB বৈশিষ্ট্য। এটি বর্তমানে শুধুমাত্র ট্রান্সমিট সমর্থন করে
2.4 বিভাগ প্রতি 6.5.3.1 GHz এ নির্দিষ্ট করা পাওয়ার স্পেকট্রাল ডেনসিটি মাস্ক। শব্দ শক্তি
ঘনত্ব অনুমান করে যে ফ্রিকোয়েন্সি ব্যান্ড জুড়ে সমানভাবে বিতরণ করা তাপীয় শব্দ। ক্ষতি
মডেলটি সমস্ত বিদ্যমান সাধারণ (অ-স্পেকট্রাম ফাই) ক্ষতির মডেলগুলিকে সম্পূর্ণরূপে ব্যবহার করতে পারে। দ্যা ফি মডেল
বিদ্যমান একক স্পেকট্রাম চ্যানেল মডেল ব্যবহার করে। ভৌত স্তর প্যাকেটে মডেল করা হয়
স্তর, অর্থাৎ, কোন প্রস্তাবনা/SFD সনাক্তকরণ করা হয় না। সঙ্গে শুরু হবে প্যাকেট অভ্যর্থনা
প্রস্তাবনার প্রথম বিট (যা মডেল করা হয় না), যদি SNR -5 dB-এর বেশি হয়, দেখুন
IEEE Std 802.15.4-2006, পরিশিষ্ট E, চিত্র E.2। প্যাকেট গ্রহণের পর শেষ হবে
প্যাকেট সম্পূর্ণরূপে প্রেরণ করা হয়. অভ্যর্থনা সময় আগত অন্যান্য প্যাকেট যোগ করা হবে
হস্তক্ষেপ/গোলমাল।

বর্তমানে রিসিভার সংবেদনশীলতা একটি নির্দিষ্ট মান -106.58 dBm সেট করা আছে। এই
এই সংকেতের জন্য 1 বাইট রেফারেন্স প্যাকেটের জন্য 20% প্যাকেট ত্রুটির হারের সাথে মিলে যায়
ক্ষমতা, IEEE Std 802.15.4-2006 অনুযায়ী, বিভাগ 6.1.7। ভবিষ্যতে আমরা প্রদান করব
বিভিন্ন মানের সংবেদনশীলতা পরিবর্তনের জন্য সমর্থন।
[ছবি] প্যাকেট ত্রুটি হার বনাম সংকেত শক্তি.UNINDENT

নেটডিভাইস
যদিও এটি আশা করা হচ্ছে যে অন্যান্য প্রযুক্তি প্রোফাইল (যেমন 6LoWPAN এবং ZigBee) হবে
তাদের নিজস্ব NetDevice ক্লাস লিখুন, একটি মৌলিক LrWpanNetDevice প্রদান করা হয়, যা encapsulates
একটি জেনেরিক LrWpan ডিভাইস তৈরি করা এবং জিনিসগুলিকে একসাথে আটকানোর সাধারণ ক্রিয়াকলাপ।

ব্যাপ্তি এবং সীমাবদ্ধতা
এই নথির ভবিষ্যত সংস্করণে পরিশিষ্ট D এর অনুরূপ একটি PICS প্রোফরমা থাকবে
IEEE 802.15.4-2006। বর্তমান জোর 802.15.4 অপারেশনের আনস্লটেড মোডের উপর
Zigbee ব্যবহার করার জন্য, এবং সুযোগটি মৌলিক সহ একটি একক মোড (CSMA/CA) সক্ষম করার জন্য সীমাবদ্ধ
তথ্য স্থানান্তর ক্ষমতা। প্যান কো-অর্ডিনেটরদের সাথে অ্যাসোসিয়েশন এখনও সমর্থিত নয়, না
বর্ধিত ঠিকানা ব্যবহার. হস্তক্ষেপ AWGN হিসাবে মডেল করা হয়েছে কিন্তু এটি বর্তমানে নয়
পুঙ্খানুপুঙ্খভাবে পরীক্ষিত।

NetDevice Tx সারি সীমাবদ্ধ নয়, অর্থাৎ, সারির কারণে প্যাকেটগুলি কখনই বাদ দেওয়া হয় না
পূর্ণ হচ্ছে অত্যধিক ট্রান্সমিশন পুনরায় চেষ্টা বা চ্যানেল অ্যাক্সেসের কারণে সেগুলি বাদ দেওয়া হতে পারে
ব্যর্থতা.

তথ্যসূত্র
· ওয়্যারলেস মিডিয়াম এক্সেস কন্ট্রোল (MAC) এবং ফিজিক্যাল লেয়ার (PHY) স্পেসিফিকেশন এর জন্য
লো-রেট ওয়্যারলেস পার্সোনাল এরিয়া নেটওয়ার্ক (WPANs), IEEE Computer Society, IEEE Std
802.15.4-2006, 8 সেপ্টেম্বর 2006।

·

J. Zheng এবং Myung J. Lee, "IEEE 802.15.4 এর একটি ব্যাপক কর্মক্ষমতা অধ্যয়ন," ​​সেন্সর
নেটওয়ার্ক অপারেশন, আইইইই প্রেস, উইলি ইন্টারসায়েন্স, অধ্যায় 4, পিপি 218-237, 2006।

ব্যবহার
সক্ষম করা হলে তা lr-wpan
বিজ্ঞাপন lr-wpan ns-3 দিয়ে নির্মিত মডিউলের তালিকায়।

সাহায্যকারী
সাহায্যকারী অন্যান্য ডিভাইস সাহায্যকারীদের পরে প্যাটার্ন করা হয়. বিশেষত, ট্রেসিং (ascii এবং
pcap) একইভাবে সক্রিয় করা হয়েছে, এবং সমস্ত lr-wpan লগ উপাদান সক্রিয় করা হয়
একইভাবে সাহায্যকারীর ব্যবহার এর উদাহরণ দেওয়া হয়েছে উদাহরণ/lr-wpan-data.cc. ascii এর জন্য
ট্রেসিং, ট্রান্সমিট এবং রিসিভ ট্রেস ম্যাক লেয়ারে আটকে থাকে।

চ্যানেলে যোগ করা ডিফল্ট প্রচার ক্ষতি মডেল, যখন এই সাহায্যকারী ব্যবহার করা হয়, তা হল
ডিফল্ট প্যারামিটার সহ LogDistancePropagationLossModel।

উদাহরণ
নিম্নলিখিত উদাহরণগুলি লেখা হয়েছে, যা পাওয়া যাবে src/lr-wpan/examples/:

· lr-wpan-data.cc: এন্ড-টু-এন্ড ডেটা ট্রান্সফার দেখানো একটি সহজ উদাহরণ।

· lr-wpan-error-distance-plot.cc: প্যাকেট সাফল্যের বৈচিত্র প্লট করার একটি উদাহরণ
দূরত্বের একটি ফাংশন হিসাবে অনুপাত।

· lr-wpan-error-model-plot.cc: phy পরীক্ষা করার জন্য একটি উদাহরণ।

· lr-wpan-packet-print.cc: MAC হেডার ক্ষেত্রগুলি প্রিন্ট করার জন্য একটি উদাহরণ।

· lr-wpan-phy-test.cc: phy পরীক্ষা করার জন্য একটি উদাহরণ।

বিশেষ করে, মডিউলটি একটি খুব সরলীকৃত এন্ড-টু-এন্ড ডেটা স্থানান্তর দৃশ্যকল্প সক্ষম করে,
বাস্তবায়িত lr-wpan-data.cc. চিত্রটি ট্রিগার হওয়া ইভেন্টগুলির একটি ক্রম দেখায়
যখন MAC উচ্চ স্তর থেকে একটি DataRequest পায়। এটি একটি পরিষ্কার চ্যানেল আহ্বান করে
PHY থেকে মূল্যায়ন (CCA), এবং সফল হলে, ফ্রেমটি PHY-তে পাঠায় যেখানে এটি
চ্যানেলের মাধ্যমে প্রেরিত হয় এবং এর ফলে পিয়ার নোডে ডেটা ইন্ডিকেশন দেখা যায়।
[ছবি] সাধারণ LR-WPAN ডেটা ট্রান্সফার এন্ড-টু-এন্ডের জন্য ডেটা উদাহরণ।UNINDENT

উদাহরণ lr-wpan-error-distance-plot.cc প্যাকেট সাকসেস রেশিও (PSR) কে ক হিসাবে প্লট করে
দূরত্ব ফাংশন, ডিফল্ট LogDistance প্রচার ক্ষতি মডেল ব্যবহার করে এবং
802.15.4 ত্রুটি মডেল। চ্যানেল (ডিফল্ট 11), প্যাকেটের আকার (ডিফল্ট 20 বাইট) এবং
ট্রান্সমিট পাওয়ার (ডিফল্ট 0 dBm) কমান্ড লাইন আর্গুমেন্ট দ্বারা পরিবর্তিত হতে পারে। কার্যক্রম
নামের একটি ফাইল আউটপুট করে 802.15.4-psr-distance.plt. এই ফাইলটি gnuplot-এ লোড করলে একটি পাওয়া যায়
ফাইল 802.15.4-psr-distance.eps, যা pdf বা অন্যান্য বিন্যাসে রূপান্তর করা যেতে পারে। দ্য
ডিফল্ট আউটপুট নীচে দেখানো হয়েছে।
[image] প্রোগ্রামের ডিফল্ট আউটপুট lr-wpan-error-distance-plot.cc.UNINDENT

টেস্ট
নিম্নলিখিত পরীক্ষাগুলি লিখিত হয়েছে, যা পাওয়া যাবে src/lr-wpan/tests/:

· lr-wpan-ack-test.cc: চেক করুন যে স্বীকারোক্তিগুলি ব্যবহার করা হচ্ছে এবং ইস্যু করা হচ্ছে৷
সঠিক ক্রম.

· lr-wpan-collision-test.cc: হস্তক্ষেপ এবং সঙ্গে প্যাকেট সঠিক অভ্যর্থনা পরীক্ষা
সংঘর্ষ

· lr-wpan-error-model-test.cc: ত্রুটি মডেল অনুমানযোগ্য মান দেয় কিনা পরীক্ষা করুন।

· lr-wpan-packet-test.cc: 802.15.4 MAC হেডার/ট্রেলার ক্লাস পরীক্ষা করুন

· lr-wpan-pd-plme-sap-test.cc: IEEE 802.15.4 প্রতি PLME এবং PD SAP পরীক্ষা করুন

· lr-wpan-spectrum-value-helper-test.cc: পরীক্ষা যে ক্ষমতা মধ্যে রূপান্তর
(একটি স্কেলার পরিমাণ হিসাবে প্রকাশ করা হয়) এবং বর্ণালী শক্তি, এবং আবার ফিরে, একটি 25% এর মধ্যে পড়ে
সম্ভাব্য চ্যানেল এবং ইনপুট ক্ষমতার পরিসীমা জুড়ে সহনশীলতা।

ভ্যালিডেশন
মডেলটি বাস্তব হার্ডওয়্যারের বিরুদ্ধে যাচাই করা হয়নি। ত্রুটি মডেল হয়েছে
IEEE Std 802.15.4-2006, বিভাগ E.4.1.7 (চিত্র E.2) এর ডেটার বিপরীতে যাচাই করা হয়েছে। দ্য
MAC আচরণ (CSMA ব্যাকঅফ) প্রত্যাশিত আচরণের বিরুদ্ধে হাত দ্বারা বৈধ করা হয়েছে। দ্য
নীচের প্লটটি ত্রুটি মডেল যাচাইকরণের একটি উদাহরণ এবং এটি চালানোর মাধ্যমে পুনরুত্পাদন করা যেতে পারে
lr-wpan-error-model-plot.cc:
[image] প্রোগ্রামের ডিফল্ট আউটপুট lr-wpan-error-model-plot.cc.UNINDENT

এলটিই মডিউল


নকশা ডকুমেন্টেশন
সংক্ষিপ্ত বিবরণ
LTE-EPC সিমুলেশন মডেলের একটি ওভারভিউ চিত্রে দেখানো হয়েছে সংক্ষিপ্ত বিবরণ of দ্য
এলটিই-ইপিসি ব্যাজ মডেল. দুটি প্রধান উপাদান আছে:

· এলটিই মডেল। এই মডেলটিতে LTE রেডিও প্রোটোকল স্ট্যাক (RRC, PDCP, RLC, MAC,
PHY)। এই সত্তাগুলি সম্পূর্ণরূপে UE এবং eNB নোডের মধ্যে থাকে।

· ইপিসি মডেল। এই মডেলগুলির মধ্যে রয়েছে মূল নেটওয়ার্ক ইন্টারফেস, প্রোটোকল এবং সত্তা।
এই সত্তা এবং প্রোটোকলগুলি SGW, PGW এবং MME নোডের মধ্যে থাকে এবং আংশিকভাবে
eNB নোডের মধ্যে।
[ছবি] LTE-EPC সিমুলেশন মডেলের ওভারভিউ।UNINDENT

নকশা নির্ণায়ক
এলটিই মডেল
এলটিই মডেলটি এলটিই এর নিম্নলিখিত দিকগুলির মূল্যায়নকে সমর্থন করার জন্য ডিজাইন করা হয়েছে
সিস্টেম:

· রেডিও রিসোর্স ম্যানেজমেন্ট

· QoS-সচেতন প্যাকেট শিডিউলিং

· আন্তঃকোষ হস্তক্ষেপ সমন্বয়

· ডাইনামিক স্পেকট্রাম অ্যাক্সেস

LTE সিস্টেমগুলিকে বিশদ স্তরে মডেল করার জন্য যা একটি সঠিক অনুমতি দেওয়ার জন্য যথেষ্ট
উল্লিখিত দিক মূল্যায়ন, নিম্নলিখিত প্রয়োজনীয়তা করা হয়েছে
বিবেচিত:

1. রেডিও স্তরে, মডেলের গ্রানুলারিটি কমপক্ষে হওয়া উচিত
রিসোর্স ব্লক (আরবি)। প্রকৃতপক্ষে, এটি সম্পদের জন্য ব্যবহৃত মৌলিক একক
বরাদ্দ এই ন্যূনতম স্তরের গ্রানুলারিটি ছাড়া মডেল করা সম্ভব নয়
সঠিকভাবে প্যাকেট নির্ধারণ এবং আন্তঃকোষ-হস্তক্ষেপ। কারণ হল, যেহেতু
প্যাকেট সময়সূচী প্রতি-RB ভিত্তিতে করা হয়, একটি eNB শুধুমাত্র একটি উপসেটে প্রেরণ করতে পারে
সমস্ত উপলব্ধ RB-এর মধ্যে, তাই শুধুমাত্র সেই RB-তে অন্যান্য eNB-তে হস্তক্ষেপ করা হয় যেখানে
এটি প্রেরণ করা হয়। মনে রাখবেন যে এই প্রয়োজনীয়তাটি একটি সিস্টেম গ্রহণকে বাতিল করে
স্তরের সিমুলেশন পদ্ধতি, যা শুধুমাত্র এ সম্পদ বরাদ্দ মূল্যায়ন করে
কল/বাহক প্রতিষ্ঠার কণিকা।

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

3. সিমুলেশনের মধ্যে বিভিন্ন কোষ কনফিগার করা সম্ভব হওয়া উচিত যাতে করে
তারা বিভিন্ন ক্যারিয়ার ফ্রিকোয়েন্সি এবং সিস্টেম ব্যান্ডউইথ ব্যবহার করে। ব্যান্ডউইথ ব্যবহার করে
গতিশীল বর্ণালী সমর্থন করার জন্য বিভিন্ন কোষকে ওভারল্যাপ করার অনুমতি দেওয়া উচিত
লাইসেন্সিং সমাধান যেমন [Ofcom2600MHz] এবং [RealWireless]-এ বর্ণিত।
হস্তক্ষেপের গণনা এই ক্ষেত্রে যথাযথভাবে পরিচালনা করা উচিত।

4. LTE স্ট্যান্ডার্ডের আরও প্রতিনিধি হতে, সেইসাথে যতটা সম্ভব কাছাকাছি থাকা
বাস্তব-বিশ্ব বাস্তবায়নের জন্য, সিমুলেটরটিকে MAC শিডিউলার API সমর্থন করা উচিত
ফেমটোফোরাম [এফএফএপিআই] দ্বারা প্রকাশিত। এই ইন্টারফেস দ্বারা ব্যবহার করা হবে বলে আশা করা হচ্ছে
সময়সূচী এবং রেডিও রিসোর্স বাস্তবায়নের জন্য femtocell নির্মাতারা
ব্যবস্থাপনা (RRM) অ্যালগরিদম। এই ইন্টারফেসের জন্য সমর্থন প্রবর্তন করে
সিমুলেটর, আমরা এলটিই সরঞ্জাম বিক্রেতা এবং অপারেটরদের জন্য পরীক্ষা করা সম্ভব করি
অনুকরণীয় পরিবেশ ঠিক একই অ্যালগরিদম যা বাস্তবে স্থাপন করা হবে
পদ্ধতি.

5. LTE সিমুলেশন মডেলে সংজ্ঞায়িত API এর নিজস্ব বাস্তবায়ন থাকা উচিত
[এফএফএপিআই]। বিক্রেতা-নির্দিষ্টের সাথে বাইনারি বা ডেটা স্ট্রাকচার সামঞ্জস্য নয়
একই ইন্টারফেসের বাস্তবায়ন প্রত্যাশিত; সুতরাং, একটি সামঞ্জস্য স্তর
যখনই একটি বিক্রেতা-নির্দিষ্ট MAC শিডিউলারের সাথে ব্যবহার করা হবে তখনই ইন্টারপোজ করা উচিত
সিমুলেটর সিমুলেটরটিকে স্বাধীন হতে দেওয়ার জন্য এই প্রয়োজনীয়তাটি প্রয়োজনীয়
এই ইন্টারফেস স্পেসিফিকেশনের বিক্রেতা-নির্দিষ্ট বাস্তবায়ন থেকে। আমরা লিখে রাখলাম
[FFAPI] শুধুমাত্র একটি যৌক্তিক স্পেসিফিকেশন, এবং এর বাস্তবায়ন (যেমন, অনুবাদ
কিছু নির্দিষ্ট প্রোগ্রামিং ভাষার জন্য) বিক্রেতাদের কাছে ছেড়ে দেওয়া হয়।

6. উপরের দ্বারা আইপি প্যাকেটের ট্রান্সমিশন অনুকরণ করতে মডেলটি ব্যবহার করা হবে
স্তর এই সম্মানের সাথে, এটি বিবেচনা করা হবে যে LTE-তে সময়সূচী এবং
রেডিও রিসোর্স ম্যানেজমেন্ট সরাসরি আইপি প্যাকেটের সাথে কাজ করে না, বরং RLC এর সাথে
পিডিইউ, যা আইপি প্যাকেটগুলির বিভাজন এবং সংমিশ্রণ দ্বারা প্রাপ্ত হয়
RLC সত্তা। অতএব, RLC স্তরের এই কার্যকারিতাগুলি মডেল করা উচিত
সঠিকভাবে।

ইপিসি মডেল
ইপিসি মডেলের মূল উদ্দেশ্য হল এন্ড-টু-এন্ড সিমুলেশনের জন্য উপায় সরবরাহ করা
এলটিই মডেলের উপর আইপি সংযোগ। এই লক্ষ্যে, এটি আন্তঃসংযোগের জন্য সমর্থন করে
ইন্টারনেটে একাধিক UE, একাধিক eNB এর সাথে সংযুক্ত একটি রেডিও অ্যাক্সেস নেটওয়ার্কের মাধ্যমে
একক SGW/PGW নোড, যেমন চিত্রে দেখানো হয়েছে সংক্ষিপ্ত বিবরণ of দ্য এলটিই-ইপিসি ব্যাজ মডেল.

EPC মডেলের জন্য নিম্নলিখিত নকশা পছন্দ করা হয়েছে:

1. শুধুমাত্র প্যাকেট ডেটা নেটওয়ার্ক (PDN) টাইপ সমর্থিত IPv4।

2. SGW এবং PGW কার্যকরী সত্তাগুলি একটি একক নোডের মধ্যে প্রয়োগ করা হয়, যা হল
তাই SGW/PGW নোড হিসাবে উল্লেখ করা হয়।

3. আন্তঃ-SGW গতিশীলতার সাথে দৃশ্যকল্পগুলি আগ্রহের নয়। তাই, একটি একক SGW/PGW
সমস্ত সিমুলেশন পরিস্থিতিতে নোড উপস্থিত থাকবে

4. ইপিসি মডেলের জন্য একটি প্রয়োজনীয়তা হল এটি এন্ড-টু-এন্ড সিমুলেট করতে ব্যবহার করা যেতে পারে
বাস্তবসম্মত অ্যাপ্লিকেশনের কর্মক্ষমতা। অতএব, এটি সঙ্গে ব্যবহার করা সম্ভব হওয়া উচিত
EPC মডেল টিসিপি বা ইউডিপি-র উপরে কাজ করা নিয়মিত ns-3 অ্যাপ্লিকেশন।

5. আরেকটি প্রয়োজনীয়তা হল এর সাথে নেটওয়ার্ক টপোলজির অনুকরণের সম্ভাবনা
একাধিক eNB এর উপস্থিতি, যার মধ্যে কিছু একটি ব্যাকহল দিয়ে সজ্জিত হতে পারে
সীমিত ক্ষমতার সাথে সংযোগ। এই ধরনের পরিস্থিতিতে অনুকরণ করার জন্য, ব্যবহারকারী
eNBs এবং SGW/PGW-এর মধ্যে ব্যবহৃত ডেটা প্লেন প্রোটোকলগুলিকে মডেল করা উচিত
সঠিকভাবে।

6. একটি একক UE এর জন্য ভিন্ন ভিন্ন অ্যাপ্লিকেশন ব্যবহার করা সম্ভব হওয়া উচিত
QoS প্রোফাইল। তাই, প্রতিটি UE-এর জন্য একাধিক EPS ধারককে সমর্থন করা উচিত। এই
টিসিপি/ইউডিপি ট্রাফিকের প্রয়োজনীয় শ্রেণীবিভাগ অন্তর্ভুক্ত করে আইপি-তে UE-তে করা হয়েছে
আপলিংক এবং ডাউনলিংকের PGW এ।

7. ইপিসি মডেলের ফোকাস প্রধানত ইপিসি ডেটা প্লেনের উপর। এর সঠিক মডেলিং
EPC কন্ট্রোল প্লেন, আপাতত, একটি প্রয়োজন নয়; অত: পর
প্রয়োজনীয় নিয়ন্ত্রণ সমতল মিথস্ক্রিয়া একটি সরলীকৃত উপায় দ্বারা মডেল করা যেতে পারে
এর মাধ্যমে বিভিন্ন সিমুলেশন অবজেক্টের মধ্যে সরাসরি মিথস্ক্রিয়ায় লিভারেজিং
সাহায্যকারী বস্তু প্রদান.

8. EPC মডেলের ফোকাস ECM সংযুক্ত মোডে সক্রিয় ব্যবহারকারীদের সিমুলেশনের উপর।
তাই, সমস্ত কার্যকারিতা যা শুধুমাত্র ECM নিষ্ক্রিয় মোডের জন্য প্রাসঙ্গিক (বিশেষ করে,
ট্র্যাকিং এলাকা আপডেট এবং পেজিং) মোটেই মডেল করা হয় না।

9. মডেলটিকে দুজনের মধ্যে একটি X2-ভিত্তিক হস্তান্তর করার সম্ভাবনাকে অনুমতি দেওয়া উচিত
eNBs

স্থাপত্য
এলটিই মডেল
UE স্থাপত্য
UE-এর LTE রেডিও প্রোটোকল স্ট্যাক মডেলের আর্কিটেকচারে উপস্থাপন করা হয়েছে
পরিসংখ্যান এলটিই রেডিও প্রোটোকল গাদা স্থাপত্য উন্নত দ্য UE on দ্য উপাত্ত সমতল এবং এলটিই রেডিও
প্রোটোকল গাদা স্থাপত্য উন্নত দ্য UE on দ্য নিয়ন্ত্রণ সমতল যা যথাক্রমে হাইলাইট করে
তথ্য সমতল এবং নিয়ন্ত্রণ সমতল.
[ছবি] ডেটা প্লেনে UE-এর জন্য LTE রেডিও প্রোটোকল স্ট্যাক আর্কিটেকচার। UNINDENT
[ছবি] কন্ট্রোল প্লেনে UE-এর জন্য LTE রেডিও প্রোটোকল স্ট্যাক আর্কিটেকচার। UNINDENT

UE-এর PHY/চ্যানেল মডেলের আর্কিটেকচার চিত্রে উপস্থাপন করা হয়েছে PHY এবং
চ্যানেল মডেল স্থাপত্য উন্নত দ্য UE.
[image] UE.UNINDENT-এর জন্য PHY এবং চ্যানেল মডেল আর্কিটেকচার

eNB স্থাপত্য
eNB-এর LTE রেডিও প্রোটোকল স্ট্যাক মডেলের আর্কিটেকচারে উপস্থাপন করা হয়েছে
পরিসংখ্যান এলটিই রেডিও প্রোটোকল গাদা স্থাপত্য উন্নত দ্য eNB on দ্য উপাত্ত সমতল এবং এলটিই রেডিও
প্রোটোকল গাদা স্থাপত্য উন্নত দ্য eNB on দ্য নিয়ন্ত্রণ সমতল যা যথাক্রমে হাইলাইট করে
তথ্য সমতল এবং নিয়ন্ত্রণ সমতল.
[ছবি] ডাটা প্লেনে eNB-এর জন্য LTE রেডিও প্রোটোকল স্ট্যাক আর্কিটেকচার। UNINDENT
[ছবি] কন্ট্রোল প্লেনে eNB-এর জন্য LTE রেডিও প্রোটোকল স্ট্যাক আর্কিটেকচার। UNINDENT

eNB-এর PHY/চ্যানেল মডেলের আর্কিটেকচার চিত্রে উপস্থাপন করা হয়েছে PHY এবং
চ্যানেল মডেল স্থাপত্য উন্নত দ্য eNB.
[image] eNB.UNINDENT-এর জন্য PHY এবং চ্যানেল মডেল আর্কিটেকচার

ইপিসি মডেল
ইপিসি উপাত্ত সমতল
চিত্রে এলটিই-ইপিসি উপাত্ত সমতল প্রোটোকল গাদা, আমরা এন্ড-টু-এন্ড LTE-EPC ডেটা উপস্থাপন করি
প্লেন প্রোটোকল স্ট্যাক যেমন এটি সিমুলেটরে মডেল করা হয়। চিত্র থেকে, এটা স্পষ্ট
যে সবচেয়ে বড় সরলীকরণ তথ্য সমতল মডেল চালু করা হয় এর অন্তর্ভুক্তি
একটি একক SGW/PGW নোডের মধ্যে SGW এবং PGW কার্যকারিতা, যা S5-এর প্রয়োজনীয়তা দূর করে
অথবা 8GPP দ্বারা নির্দিষ্ট S3 ইন্টারফেস। অন্যদিকে, উভয় S1-U প্রোটোকল স্ট্যাকের জন্য
এবং LTE রেডিও প্রোটোকল স্ট্যাক 3GPP দ্বারা নির্দিষ্ট সমস্ত প্রোটোকল স্তর উপস্থিত রয়েছে।
[ছবি] LTE-EPC ডেটা প্লেন প্রোটোকল স্ট্যাক।UNINDENT

ইপিসি নিয়ন্ত্রণ সমতল
কন্ট্রোল প্লেন মডেল বাস্তবায়নের আর্কিটেকচার চিত্রে দেখানো হয়েছে ইপিসি
নিয়ন্ত্রণ মডেল. যে কন্ট্রোল ইন্টারফেসগুলি স্পষ্টভাবে মডেল করা হয়েছে সেগুলি হল S1-AP, X2-AP৷
এবং S11 ইন্টারফেস।

আমরা লক্ষ্য করি যে S1-AP এবং S11 ইন্টারফেসগুলি একটি সরলীকৃত ফ্যাশনে তৈরি করা হয়েছে, দ্বারা
সত্তার মধ্যে মিথস্ক্রিয়া মডেল করতে ইন্টারফেস ক্লাসের মাত্র এক জোড়া ব্যবহার করে
বিভিন্ন নোডে থাকে (S1-AP ইন্টারফেসের জন্য eNB এবং MME, এবং MME এবং
S11 ইন্টারফেসের জন্য SGW)। অনুশীলনে, এর অর্থ এই যে আদিম
ইন্টারফেস দুটি বস্তুর মধ্যে একটি সরাসরি ফাংশন কল ম্যাপ করা হয়. অন্যদিকে
হাতে, X2-AP ইন্টারফেসটি একটি X2 লিঙ্কের মাধ্যমে প্রেরিত প্রোটোকল ডেটা ইউনিট ব্যবহার করে মডেল করা হচ্ছে
(একটি পয়েন্ট-টু-পয়েন্ট লিঙ্ক হিসাবে মডেল করা হয়েছে); এই কারণে, X2-AP ইন্টারফেস মডেল আরও বেশি
বাস্তবসম্মত
[ছবি] EPC নিয়ন্ত্রণ মডেল।UNINDENT

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

ব্যবহার of দ্য ভবন মডেল সঙ্গে এলটিই
LTE মডিউলের সাথে ব্যবহার করার জন্য প্রস্তাবিত প্রচার মডেলটি প্রদান করা হয়েছে
বিল্ডিং মডিউল, যা প্রকৃতপক্ষে LTE এর সাথে বিশেষভাবে ডিজাইন করা হয়েছিল (যদিও এটি হতে পারে
অন্যান্য বেতার প্রযুক্তির সাথেও ব্যবহৃত হয়)। অনুগ্রহ করে এর ডকুমেন্টেশন পড়ুন
এটি প্রদান করে প্রচার মডেলের জেনেরিক তথ্যের জন্য বিল্ডিং মডিউল।

এই বিভাগে আমরা কিছু বিবেচ্য বিষয় তুলে ধরব যা বিশেষভাবে প্রযোজ্য হবে যখন
বিল্ডিং মডিউল LTE মডিউলের সাথে একসাথে ব্যবহার করা হয়।

নিম্নলিখিতগুলিতে ব্যবহৃত নামকরণের রীতি হবে:

· ব্যবহারকারীর সরঞ্জাম: UE

· ম্যাক্রো বেস স্টেশন: এমবিএস

· ছোট সেল বেস স্টেশন (যেমন, পিকো/ফেমটোসেল): এসসি

LTE মডিউল শুধুমাত্র FDD বিবেচনা করে, এবং ডাউনলিংক এবং আপলিংক প্রচার প্রয়োগ করে
আলাদাভাবে ফলস্বরূপ, নিম্নলিখিত প্যাথলস গণনাগুলি সঞ্চালিত হয়

· MBS <-> UE (ইনডোর এবং আউটডোর)

· SC (ইনডোর এবং আউটডোর) <-> UE (ইনডোর এবং আউটডোর)

LTE মডেল নিম্নলিখিত প্যাথলস গণনা প্রদান করে না:

· UE <-> UE

· MBS <-> MBS

· এমবিএস <-> এসসি

· SC <-> SC

বিল্ডিং মডেল নোডের প্রকৃত প্রকার জানে না; অর্থাৎ, এটি সম্পর্কে সচেতন নয়
একটি ট্রান্সমিটার নোড একটি UE, একটি MBS, বা একটি SC কিনা। বরং, বিল্ডিং মডেল শুধুমাত্র যত্ন
নোডের অবস্থান সম্পর্কে: এটি ইনডোর এবং আউটডোর কিনা এবং এর জেড-অক্ষ কী
ছাদের স্তরের প্রতি সম্মান। ফলস্বরূপ, একটি eNB নোডের জন্য যা বহিরঙ্গন স্থাপন করা হয় এবং
ছাদের স্তরের উপরে একটি z-কোঅর্ডিনেটে, MBS এর বংশবিস্তার মডেলগুলি হবে
বিল্ডিং মডিউল দ্বারা ব্যবহৃত। বিপরীতভাবে, একটি eNB এর জন্য যা বহিরঙ্গন কিন্তু নীচে রাখা হয়
ছাদে, বা ইনডোরে, পিকো এবং ফেমটোসেলের মতো বংশবিস্তার মডেলগুলি ব্যবহার করা হবে।

অন্তত একটি অন্দর নোড জড়িত যোগাযোগের জন্য, সংশ্লিষ্ট প্রাচীর অনুপ্রবেশ
ক্ষতি বিল্ডিং মডেল দ্বারা গণনা করা হবে. এটি নিম্নলিখিত ব্যবহারের ক্ষেত্রে কভার করে:

· MBS <-> ইনডোর UE

· আউটডোর SC <-> ইনডোর UE

· ইনডোর SC <-> ইনডোর UE

· ইনডোর SC <-> আউটডোর UE

প্রকৃত মডেলের বিশদ বিবরণের জন্য দয়া করে বিল্ডিং মডিউলের ডকুমেন্টেশন দেখুন
প্রতিটি ক্ষেত্রে ব্যবহৃত।

ফেইড মডেল
এলটিই মডিউলটিতে একটি ট্রেস-ভিত্তিক ফেইডিং মডেল রয়েছে যা সময় তৈরি করা হয়েছিল
GSoC 2010 [Piro2011]। এই মডেলের প্রধান বৈশিষ্ট্য হল যে
সিমুলেশন রান-টাইম চলাকালীন বিবর্ণ মূল্যায়ন প্রতি-গণনা করা ট্রেসের উপর ভিত্তি করে। এই
সিমুলেটরের কম্পিউটেশনাল জটিলতা সীমিত করার জন্য করা হয়েছে। অন্যদিকে, এটি প্রয়োজন
ট্রেস সংরক্ষণের জন্য বিশাল কাঠামো; অতএব, সংখ্যার মধ্যে একটি বাণিজ্য বন্ধ
সম্ভাব্য পরামিতি এবং মেমরি দখল খুঁজে বের করতে হবে। সবচেয়ে গুরুত্বপূর্ণ হল:

· ব্যবহারকারীদের গতি: ব্যবহারকারীদের মধ্যে আপেক্ষিক গতি (ডপলার ফ্রিকোয়েন্সি প্রভাবিত করে, যা
বাঁক বিবর্ণের সময়-প্রকরণ বৈশিষ্ট্যকে প্রভাবিত করে)

· ট্যাপের সংখ্যা (এবং আপেক্ষিক শক্তি): বিবেচিত একাধিক পথের সংখ্যা, যা
বিবর্ণ এর ফ্রিকোয়েন্সি বৈশিষ্ট্য প্রভাবিত করে।

· ট্রেসের সময় গ্রানুলারিটি: ট্রেসের নমুনা নেওয়ার সময়।

· ট্রেসের ফ্রিকোয়েন্সি গ্রানুলারিটি: ফ্রিকোয়েন্সিতে মানের সংখ্যা মূল্যায়ন করা হবে।

· ট্রেসের দৈর্ঘ্য: সিমুলেশন টাইম হিসাবে আদর্শভাবে বড়, জানালা দিয়ে কমানো যেতে পারে
পদ্ধতি.

· ব্যবহারকারীর সংখ্যা: ব্যবহৃত স্বাধীন ট্রেসের সংখ্যা (আদর্শভাবে একটি ট্রেস প্রতি
ব্যবহারকারী)।

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

সিমুলেটর একটি ম্যাটল্যাব স্ক্রিপ্ট প্রদান করে
(src/lte/model/fading-traces/fading-trace-generator.m) এর উপর ভিত্তি করে ট্রেস তৈরি করার জন্য
সিমুলেটর দ্বারা ব্যবহৃত বিন্যাস। বিস্তারিতভাবে, চ্যানেল অবজেক্টটি রেইলিছন দিয়ে তৈরি করা হয়েছে
ফাংশন প্রাপ্ত করার জন্য একটি বিচ্ছিন্ন-সময় আবেগ সংকেত ফিল্টার করার জন্য ব্যবহৃত হয়
চ্যানেল আবেগ প্রতিক্রিয়া। বিভিন্ন TTI-এর জন্য ফিল্টারিং পুনরাবৃত্তি করা হয়, ফলে ফল পাওয়া যায়
পরবর্তী সময়-সম্পর্কিত চ্যানেল প্রতিক্রিয়া (টিটিআই প্রতি একটি)। চ্যানেলের প্রতিক্রিয়া তখন
দিয়ে প্রক্রিয়াজাত করা হয়েছে pwelch তার শক্তি বর্ণালী ঘনত্ব মান প্রাপ্ত করার জন্য ফাংশন, যা
তারপর সিমুলেটর মডেলের সাথে সামঞ্জস্যপূর্ণ যথাযথ বিন্যাস সহ একটি ফাইলে সংরক্ষণ করা হয়।

যেহেতু ভেরিয়েবলের সংখ্যা এটি বেশ বেশি, সেগুলিকে বিবেচনা করে ট্রেস তৈরি করুন
বিশাল আকারের উচ্চ সংখ্যার ট্রেস তৈরি করতে পারে। এই বিষয়ে, আমরা বিবেচনা
3GPP ফেইডিং প্রচার অবস্থার উপর ভিত্তি করে পরামিতিগুলির অনুমান অনুসরণ করা
( [TS2] এর Annex B.36104 দেখুন):

· ব্যবহারকারীদের গতি: সাধারণত শুধুমাত্র কয়েকটি পৃথক মান বিবেচনা করা হয়, যেমন:

পথচারীদের জন্য 0 এবং 3 কিমি প্রতি ঘণ্টা

· যানবাহন পরিস্থিতির জন্য 30 এবং 60 কিমি প্রতি ঘণ্টা

শহুরে পরিস্থিতিতে 0, 3, 30 এবং 60

· চ্যানেল ট্যাপস: চ্যানেল ট্যাপের সীমিত সংখ্যক সেট সাধারণত বিবেচনা করা হয়,
উদাহরণ স্বরূপ [TS2] এর Annex B.36104 এ তিনটি মডেল উল্লেখ করা হয়েছে।

· টাইম গ্রানুলারিটি: আমাদের টিটিআই প্রতি একটি ফেইডিং ভ্যালু দরকার, অর্থাৎ প্রতি 1 মিসে (যেমন এটি
ns-3 LTE PHY মডেলের সময়ে গ্রানুলারিটি)।

· ফ্রিকোয়েন্সি গ্রানুলারিটি: আমাদের RB প্রতি একটি বিবর্ণ মান প্রয়োজন (যা ফ্রিকোয়েন্সি
ns-3 LTE মডেল দ্বারা ব্যবহৃত স্পেকট্রাম মডেলের গ্রানুলারিটি)।

· ট্রেসের দৈর্ঘ্য: সিমুলেটরটি বাস্তবায়িত উইন্ডো প্রক্রিয়া অন্তর্ভুক্ত করে
GSoC 2011 এর সময়, যার মধ্যে প্রতিটি উইন্ডোর ট্রেসের একটি উইন্ডো তোলা থাকে
এলোমেলো ফ্যাশনে দৈর্ঘ্য।

· প্রতি-ব্যবহারকারী বিবর্ণ প্রক্রিয়া: ব্যবহারকারীরা একই বিবর্ণ ট্রেস ভাগ করে, কিন্তু প্রতিটি ব্যবহারকারীর জন্য a
ট্রেসের বিভিন্ন সূচনা বিন্দু এলোমেলোভাবে তোলা হয়। এই পছন্দ করা হয়েছে
ব্যবহারকারী প্রতি একটি বিবর্ণ ট্রেস প্রদান করার প্রয়োজন এড়ান.

আমরা বিবেচনা করা পরামিতি অনুসারে, নিম্নলিখিত সূত্রটি বিস্তারিতভাবে প্রকাশ করে
বিবর্ণ ট্রেসের মোট আকার S_{ট্রেস}:

যেখানে S_{sample} হল নমুনার বাইটের আকার (যেমন, 8 দ্বিগুণ নির্ভুলতার ক্ষেত্রে,
4 ফ্লোট নির্ভুলতার ক্ষেত্রে), N_{RB} হল RB-এর সংখ্যা বা RB-এর সেট বিবেচনা করা হবে,
T_{trace} হল ট্রেসের মোট দৈর্ঘ্য, T_{নমুনা} হল ট্রেসের সময় রেজোলিউশন
(1 ms), এবং N_{senarios} হল কাঙ্খিত বিবর্ণ দৃশ্যের সংখ্যা (যেমন,
চ্যানেল ট্যাপ এবং ব্যবহারকারীর গতির মানগুলির বিভিন্ন সেটের সংমিশ্রণ)। আমরা ট্রেস প্রদান
3টি ভিন্ন পরিস্থিতির জন্য প্রতিটি ট্যাপ কনফিগারেশনের জন্য একটি পরিশিষ্ট B.2-তে সংজ্ঞায়িত করা হয়েছে
[TS36104]:

· পথচারী: নোডের গতি 3 কিমি প্রতি ঘণ্টা।

· যানবাহন: নোডের গতি 60 কিলোমিটার প্রতি ঘণ্টায়।

· শহুরে: নোডের গতি 3 কিলোমিটার প্রতি ঘণ্টায়।

তাই N_{senarios} = 3. সমস্ত ট্রেসে T_{trace} = 10 s এবং RB_{NUM} = 100 আছে। এই ফলাফল
মোট 24 এমবি বাইটে ট্রেস।

অ্যান্টেনা
উপর ভিত্তি করে হচ্ছে স্পেকট্রামফি, LTE PHY মডেল ns-3 এর মাধ্যমে অ্যান্টেনা মডেলিং সমর্থন করে
অ্যান্টেনা মডেল ক্লাস অতএব, এই শ্রেণীর উপর ভিত্তি করে যে কোন মডেল যে কোন eNB বা এর সাথে যুক্ত হতে পারে
UE উদাহরণ। উদাহরণস্বরূপ, ব্যবহার কোসাইন অ্যান্টেনা মডেল একটি eNB ডিভাইসের সাথে যুক্ত
একটি ম্যাক্রো বেস স্টেশনের একটি সেক্টর মডেল করার অনুমতি দেয়। ডিফল্টরূপে, আইসোট্রপিক অ্যান্টেনা মডেল
eNB এবং UE উভয়ের জন্য ব্যবহৃত হয়।

PHY
সংক্ষিপ্ত বিবরণ
এই এলটিই সিমুলেটরে দেওয়া ফিজিক্যাল লেয়ার মডেলটি বর্ণিত একটির উপর ভিত্তি করে
[Piro2011], নিম্নলিখিত পরিবর্তন সহ। মডেলটি এখন ইন্টার সেল অন্তর্ভুক্ত করে
ইন্টারফারেন্স ক্যালকুলেশন এবং আপলিংক ট্রাফিকের সিমুলেশন, উভয় প্যাকেট সহ
সংক্রমণ এবং CQI প্রজন্ম।

সাবফ্রেম গঠন
চিত্রে বর্ণিত সাবফ্রেমটি নিয়ন্ত্রণ এবং ডেটা অংশে বিভক্ত এলটিই সাবফ্রেম
বিভাগ।.
[ছবি] LTE সাবফ্রেম বিভাগ..UNINDENT

RB, নিয়ন্ত্রণ এবং রেফারেন্সের উপর ভিত্তি করে সিমুলেটরের গ্রানুলারিটি বিবেচনা করে
এই সীমাবদ্ধতা বিবেচনা করে সিগন্যালিংকে মডেল করতে হবে। অনুযায়ী
স্ট্যান্ডার্ড [TS36211], ডাউনলিংক কন্ট্রোল ফ্রেম প্রতিটি সাবফ্রেমের শুরুতে শুরু হয়
এবং পুরো সিস্টেম ব্যান্ডউইথ জুড়ে তিনটি চিহ্ন পর্যন্ত স্থায়ী হয়, যেখানে প্রকৃত
সময়কাল ফিজিক্যাল কন্ট্রোল ফরম্যাট ইন্ডিকেটর চ্যানেল (PCFICH) দ্বারা প্রদান করা হয়। দ্য
বরাদ্দ সংক্রান্ত তথ্য তারপর অবশিষ্ট সম্পদ পর্যন্ত ম্যাপ করা হয়
তথাকথিত ফিজিক্যাল ডাউনলিঙ্ক কন্ট্রোল চ্যানেলে PCFICH দ্বারা নির্ধারিত সময়কাল
(PDCCH)। একটি PDCCH ডাউনলিঙ্ক কন্ট্রোল ইনফরমেশন (DCI) নামে একটি একক বার্তা পরিবহন করে
MAC স্তর থেকে আসছে, যেখানে সময়সূচী a এর জন্য সম্পদ বরাদ্দ নির্দেশ করে
নির্দিষ্ট ব্যবহারকারী। PCFICH এবং PDCCH নিয়ন্ত্রণের সংক্রমণের সাথে মডেল করা হয়েছে
3/14 মিলিসেকেন্ডের একটি নির্দিষ্ট সময়কালের ফ্রেম সম্পূর্ণ উপলব্ধ
ব্যান্ডউইথ, যেহেতু সময়সূচী নিয়ন্ত্রণ অঞ্চলের আকার অনুমান করে না। এই
বোঝায় যে একটি একক ট্রান্সমিশন ব্লক সম্পূর্ণ কন্ট্রোল ফ্রেমকে একটি নির্দিষ্ট করে মডেল করে
পাওয়ার (অর্থাৎ, PDSCH-এর জন্য ব্যবহৃত একটি) সমস্ত উপলব্ধ RB জুড়ে। এটা অনুসারে
বৈশিষ্ট্য, এই ট্রান্সমিশনটি রেফারেন্স সিগন্যালের জন্য একটি মূল্যবান সমর্থনও উপস্থাপন করে
(আরএস)। এটি প্রতিটি TTI-এর পর থেকে হস্তক্ষেপের পরিস্থিতির একটি মূল্যায়ন করার অনুমতি দেয়
সমস্ত eNB নিজ নিজ উপর নিয়ন্ত্রণ ফ্রেম প্রেরণ (একযোগে) করছে
উপলব্ধ ব্যান্ডউইথ। আমরা নোট করি যে, মডেলটিতে পাওয়ার বুস্টিং অন্তর্ভুক্ত নেই
এটি চ্যানেল অনুমানের বাস্তবায়িত মডেলের কোনো উন্নতি প্রতিফলিত করে না।

সাউন্ডিং রেফারেন্স সিগন্যাল (SRS) ডাউনলিংক কন্ট্রোল ফ্রেমের অনুরূপ মডেল করা হয়েছে।
SRS পর্যায়ক্রমে পুরো সিস্টেমে সাবফ্রেমের শেষ প্রতীকে স্থাপন করা হয়
ব্যান্ডউইথ RRC মডিউল ইতিমধ্যেই গতিশীলভাবে বরাদ্দ করার জন্য একটি অ্যালগরিদম অন্তর্ভুক্ত করে
একটি eNB এর সাথে সংযুক্ত UE এর প্রকৃত সংখ্যার ফাংশন হিসাবে পর্যায়ক্রম
UE-নির্দিষ্ট পদ্ধতি ([TS8.2] এর বিভাগ 36213 দেখুন)।

ম্যাক থেকে চ্যানেল বিলম্ব
বাস্তব MAC এবং PHY বাস্তবায়নের লেটেন্সি মডেল করতে, PHY মডেলটি অনুকরণ করে a
MAC-টু-চ্যানেল বিলম্ব TTI-এর গুণে (1ms)। উভয় ডেটা এবং নিয়ন্ত্রণের সংক্রমণ
প্যাকেট এই পরিমাণ দ্বারা বিলম্বিত হয়.

CQI প্রতিক্রিয়া
CQI ফিডব্যাক তৈরি করা হয় [FFAPI]-এ যা উল্লেখ করা আছে সেই অনুযায়ী। ভিতরে
বিস্তারিত, আমরা পর্যায়ক্রমিক ওয়াইডব্যান্ড CQI এর প্রজন্ম বিবেচনা করেছি (অর্থাৎ, এর একক মান
চ্যানেলের অবস্থা যা ব্যবহার করা সমস্ত RB-এর প্রতিনিধি বলে মনে করা হয়) এবং ইনব্যান্ড CQIs (অর্থাৎ, ক
প্রতিটি RB-এর জন্য চ্যানেলের অবস্থার প্রতিনিধিত্বকারী মানের সেট)।

রিপোর্ট করা CQI সূচক প্রথমে একটি SINR পরিমাপ এবং তারপর প্রাপ্ত করা হয়
এই SINR পরিমাপ পাস করা অভিযোজিত মডুলেশন এবং কোডিং যা এটিকে ম্যাপ করবে
CQI সূচক।

ডাউনলিংকে, CQI প্রতিক্রিয়া তৈরি করতে ব্যবহৃত SINR দুটি ভিন্নভাবে গণনা করা যেতে পারে
উপায়:

1. জন্য ctrl পদ্ধতি: রেফারেন্স থেকে সংকেত শক্তি একত্রিত করে SINR গণনা করা হয়
সংকেত (যা সিমুলেশনে PDCCH-এর সমতুল্য) এবং হস্তক্ষেপ
PDCCH থেকে পাওয়ার। এই পদ্ধতির ফলে যেকোন প্রতিবেশী ইএনবিকে একটি হিসাবে বিবেচনা করা হয়
হস্তক্ষেপকারী, নির্বিশেষে এই eNB আসলে কোনো PDSCH সম্পাদন করছে কিনা
ট্রান্সমিশন, এবং চূড়ান্ত হস্তক্ষেপের জন্য ব্যবহৃত শক্তি এবং আরবি নির্বিশেষে
PDSCH ট্রান্সমিশন।

2. মিশ্র পদ্ধতি: রেফারেন্স থেকে সংকেত শক্তি একত্রিত করে SINR গণনা করা হয়
সংকেত (যা সিমুলেশনে PDCCH-এর সমতুল্য) এবং হস্তক্ষেপ
PDSCH থেকে পাওয়ার। এই পদ্ধতির ফলাফল শুধুমাত্র তাদের হস্তক্ষেপকারী হিসাবে বিবেচনা করা হয়
প্রতিবেশী eNB যারা সক্রিয়ভাবে PDSCH-এ ডেটা প্রেরণ করছে, এবং অনুমতি দেয়
ইনব্যান্ড সিকিউআই তৈরি করে যা বিভিন্ন পরিমাণে হস্তক্ষেপের জন্য অ্যাকাউন্ট করে
প্রকৃত হস্তক্ষেপ স্তর অনুযায়ী RBs. যে ক্ষেত্রে কোন PDSCH
ট্রান্সমিশন কোনো eNB দ্বারা সঞ্চালিত হয়, এই পদ্ধতি হস্তক্ষেপ যে বিবেচনা
শূন্য, অর্থাৎ, SINR শুধুমাত্র সংকেত থেকে শব্দের অনুপাত হিসাবে গণনা করা হবে।

এই দুটি CQI প্রজন্মের পদ্ধতির মধ্যে স্যুইচ করতে, LteHelper::UsePdschForCqiGeneration
কনফিগার করা প্রয়োজন: প্রথম পদ্ধতির জন্য মিথ্যা এবং দ্বিতীয় পদ্ধতির জন্য সত্য (সত্য
ডিফল্ট মান):

Config::SetDefault ("ns3::LteHelper::UsePdschForCqiGeneration", বুলিয়ান ভ্যালু (সত্য));

আপলিংকে, দুই ধরনের CQI প্রয়োগ করা হয়:

· SRS ভিত্তিক, পর্যায়ক্রমে UE দ্বারা পাঠানো হয়।

· PUSCH ভিত্তিক, প্রকৃত প্রেরিত ডেটা থেকে গণনা করা হয়।

শিডিউলার ইন্টারফেসে কল করা একটি অ্যাট্রিবিউট সিস্টেম অন্তর্ভুক্ত UlCqiFilter পরিচালনার জন্য
তাদের প্রকৃতি অনুযায়ী CQI-এর ফিল্টারিং, বিস্তারিতভাবে:

· SRS_UL_CQI শুধুমাত্র SRS ভিত্তিক CQI সংরক্ষণের জন্য।

· PUSCH_UL_CQI শুধুমাত্র PUSCH ভিত্তিক CQI সংরক্ষণের জন্য।

· ALL_UL_CQI প্রাপ্ত সমস্ত CQI সংরক্ষণ করার জন্য।

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

হস্তক্ষেপ মডেল
PHY মডেলটি সুপরিচিত গাউসিয়ান হস্তক্ষেপের মডেলগুলির উপর ভিত্তি করে, যা অনুসারে
হস্তক্ষেপকারী সংকেতের ক্ষমতা (রৈখিক ইউনিটে) নির্ধারণ করার জন্য একত্রিত করা হয়
সামগ্রিক হস্তক্ষেপ ক্ষমতা।

চিত্রের ক্রম চিত্র ক্রম নকশা of দ্য PHY হস্তক্ষেপ হিসাব
কার্যপ্রণালী দেখায় কিভাবে হস্তক্ষেপকারী সংকেতগুলি SINR গণনা করতে প্রক্রিয়া করা হয় এবং কিভাবে SINR
তারপর CQI প্রতিক্রিয়া তৈরির জন্য ব্যবহৃত হয়।
[ছবি] PHY হস্তক্ষেপ গণনা পদ্ধতির সিকোয়েন্স ডায়াগ্রাম। UNINDENT

এলটিই বর্ণালী মডেল
LTE তে eNBs এবং UEs দ্বারা রেডিও স্পেকট্রামের ব্যবহার [TS36101] এ বর্ণনা করা হয়েছে। মধ্যে
সিমুলেটর, রেডিও স্পেকট্রাম ব্যবহার নিম্নরূপ মডেল করা হয়. চলুন f_c LTE পরম বোঝায়
রেডিও ফ্রিকোয়েন্সি চ্যানেল নম্বর, যা 100 kHz এ ক্যারিয়ার ফ্রিকোয়েন্সি সনাক্ত করে
রাস্টার অধিকন্তু, B কে সংখ্যায় ট্রান্সমিশন ব্যান্ডউইথ কনফিগারেশন হতে দিন
রিসোর্স ব্লক। সিমুলেশনে ব্যবহৃত প্রতিটি জোড়া (f_c,B) এর জন্য আমরা একটি সংশ্লিষ্ট সংজ্ঞায়িত করি
সেকেন্ড-স্পেকট্রাম-মডিউল দ্বারা প্রদত্ত কার্যকারিতা ব্যবহার করে SpectrumModel। মডেল ব্যবহার করে
[Baldo2009] এ বর্ণিত স্পেকট্রাম কাঠামো। f_c এবং B প্রত্যেকের জন্য কনফিগার করা যেতে পারে
eNB সিমুলেশনে তাত্ক্ষণিক; তাই, প্রতিটি eNB একটি ভিন্ন বর্ণালী মডেল ব্যবহার করতে পারে।
প্রতিটি UE স্বয়ংক্রিয়ভাবে এটি সংযুক্ত eNB এর স্পেকট্রাম মডেল ব্যবহার করবে। ব্যবহার করে
মাল্টিমোডেলস্পেকট্রামচ্যানেল [বাল্ডো2009]-এ বর্ণিত, ইএনবিগুলির মধ্যে হস্তক্ষেপ যা ব্যবহার করে
বিভিন্ন বর্ণালী মডেল সঠিকভাবে জন্য অ্যাকাউন্ট করা হয়. এই গতিশীল অনুকরণ করতে পারবেন
স্পেকট্রাম অ্যাক্সেস নীতি, যেমন উদাহরণ স্পেকট্রাম লাইসেন্সিং নীতি যে হয়
[Ofcom2600MHz] এ আলোচনা করা হয়েছে।

উপাত্ত PHY ভুল মডেল
সিমুলেটরটিতে ডেটা সমতলের (অর্থাৎ, PDSCH এবং PUSCH) অনুযায়ী একটি ত্রুটি মডেল রয়েছে
স্ট্যান্ডার্ড লিঙ্ক-টু-সিস্টেম ম্যাপিং (LSM) কৌশলগুলিতে। পছন্দ সঙ্গে সারিবদ্ধ করা হয়
OFDMA রেডিও ট্রান্সমিশন প্রযুক্তির স্ট্যান্ডার্ড সিস্টেম সিমুলেশন পদ্ধতি। ধন্যবাদ
LSM আমরা সঠিকতা একটি ভাল স্তর বজায় রাখতে সক্ষম এবং একই সময়ে সীমাবদ্ধ
গণনাগত জটিলতা বৃদ্ধি। এটি একক লিঙ্ক স্তরের ম্যাপিংয়ের উপর ভিত্তি করে
সিস্টেমে লিঙ্ক স্তরের সিমুলেটরগুলির মাধ্যমে প্রাপ্ত কর্মক্ষমতা (আমাদের ক্ষেত্রে নেটওয়ার্কে)
সিমুলেটর বিশেষ লিঙ্কে লেয়ার সিমুলেটরটি পারফরম্যান্স জেনারেট করার জন্য ব্যবহার করা হয়
একটি PHY স্তরের দৃষ্টিকোণ থেকে একটি একক লিঙ্কের, সাধারণত কোড ব্লক ত্রুটি হারের পরিপ্রেক্ষিতে
(BLER), নির্দিষ্ট স্ট্যাটিক অবস্থার অধীনে। LSM এই পরামিতিগুলির আরও বেশি ব্যবহার করার অনুমতি দেয়
জটিল পরিস্থিতি, সিস্টেম/নেটওয়ার্ক সিমুলেটরগুলির সাধারণ, যেখানে আমাদের আরও লিঙ্ক রয়েছে,
হস্তক্ষেপ এবং "রঙিন" চ্যানেল প্রচারের ঘটনা (যেমন, ফ্রিকোয়েন্সি নির্বাচনী
বিবর্ণ)।

এটি করার জন্য ভিয়েনা LTE সিমুলেটর [ViennaLteSim] ব্যবহার করা হয়েছে যা উদ্বেগজনক
লিঙ্ক স্তর কর্মক্ষমতা নিষ্কাশন এবং পারস্পরিক তথ্য ভিত্তিক কার্যকর SINR
(MIESM) LSM ম্যাপিং ফাংশন হিসাবে সম্প্রতি Signet দ্বারা প্রকাশিত কাজের অংশ ব্যবহার করে
পাডুয়া বিশ্ববিদ্যালয়ের গ্রুপ [পাডুয়াপেম]।

MIESM
গৃহীত নির্দিষ্ট LSM পদ্ধতি হল পারস্পরিক তথ্যের ব্যবহারের উপর ভিত্তি করে
মেট্রিক, সাধারণত প্রতি কোডেড বিট প্রতি পারস্পরিক তথ্য হিসাবে উল্লেখ করা হয় (MIB বা MMIB কখন
বহুগুণে একটি গড় MIB জড়িত)। আরেকটি বিকল্প দ্বারা প্রতিনিধিত্ব করা হবে
সূচকীয় ESM (EESM); যাইহোক, সাম্প্রতিক গবেষণাগুলি দেখায় যে MIESM EESM-কে ছাড়িয়ে গেছে
নির্ভুলতার শর্তাবলী [লোজানোকোস্ট]।
[ছবি] MIESM কম্পিউটেশনাল পদ্ধতি ডায়াগ্রাম.UNINDENT

পারস্পরিক তথ্য (MI) নক্ষত্রের ম্যাপিংয়ের উপর নির্ভরশীল এবং হতে পারে
প্রতি ট্রান্সপোর্ট ব্লক (টিবি) ভিত্তিতে গণনা করা হয়, প্রতীকগুলির উপর MI মূল্যায়ন করে এবং
সাবক্যারিয়ার যাইহোক, এটি একটি নেটওয়ার্ক সিমুলেটরের জন্য খুব জটিল হবে। অতএব, আমাদের মধ্যে
বাস্তবায়নে RB এর মধ্যে একটি সমতল চ্যানেল প্রতিক্রিয়া বিবেচনা করা হয়েছে; সুতরাং, এটি
একটি TB-এর সামগ্রিক MI গণনা করা হয় TB-তে ব্যবহৃত প্রতিটি RB-এর প্রতি MI-এর গড় মূল্যায়ন করে।
বিস্তারিতভাবে, বাস্তবায়িত স্কিমটি চিত্রে দেখানো হয়েছে MIESM গণনা কার্যপ্রণালী
নকশা, যেখানে আমরা দেখি যে মডেলটি প্রতিটি RB-এর জন্য MI মান মূল্যায়ন করে শুরু হয়,
SINR নমুনা দ্বারা চিত্রে উপস্থাপিত. তারপর সমতুল্য MI প্রতি মূল্যায়ন করা হয়
MI মান গড় করে টিবি ভিত্তিতে। অবশেষে, একটি আরও পদক্ষেপের পর থেকে করতে হবে
লিঙ্ক লেভেল সিমুলেটর ব্লক এরর রেট এর পরিপ্রেক্ষিতে লিঙ্কের কর্মক্ষমতা প্রদান করে
(BLER) একটি সংযোজন সাদা গাসিয়ান নয়েজ (AWGN) চ্যানেলে, যেখানে ব্লকগুলি হল কোড
ব্লক (CBs) স্বাধীনভাবে টার্বো এনকোডার দ্বারা এনকোড/ডিকোড করা। এই বিষয়ে
আদর্শ 3GPP সেগমেন্টেশন স্কিম প্রকৃত CB আকার অনুমান করার জন্য ব্যবহার করা হয়েছে
( [TS5.1.2] এর অধ্যায় 36212 এ বর্ণিত)। এই স্কিমটি টিবিকে N_{K_-} এ ভাগ করে
K_- আকারের ব্লক এবং K_+ আকারের N_{K+} ব্লক। তাই সামগ্রিক TB BLER (TBLER)
হিসাবে প্রকাশ করা যেতে পারে

যেখানে CBLER_i হল CB এর BLER যা আমি লিঙ্ক লেভেল সিমুলেটর অনুযায়ী পেয়েছি
CB BLER বক্ররেখা। CBLER_i অনুমান করার জন্য, MI মূল্যায়ন বাস্তবায়িত হয়েছে
[wimaxEmd]-এ সংজ্ঞায়িত এর সংখ্যাগত আনুমানিকতা অনুসারে। তাছাড়া কমানোর জন্য
গণনার জটিলতা, আনুমানিকতা লুকআপে রূপান্তরিত হয়েছে
টেবিল বিস্তারিতভাবে, AWGN আনুমানিক করার জন্য গাউসিয়ান ক্রমবর্ধমান মডেল ব্যবহার করা হয়েছে
তিনটি প্যারামিটার সহ BLER বক্ররেখা যা স্ট্যান্ডার্ড AWGN-এর কাছাকাছি ফিট প্রদান করে
পারফরম্যান্স, সূত্রে:

যেখানে x টিবি এর MI, b_{ECR} হল "ট্রানজিশন সেন্টার" এবং c_{ECR} হল
প্রতিটির জন্য গাউসিয়ান ক্রমবর্ধমান বন্টনের "ট্রানজিশন প্রস্থ" এর সাথে সম্পর্কিত
কার্যকরী কোড রেট (ইসিআর) যা চ্যানেল অনুযায়ী প্রকৃত ট্রান্সমিশন রেট
কোডিং এবং MCS। আমরা বিবেচনা করা মডেলের গণনাগত জটিলতা সীমিত করার জন্য
সম্ভাব্য ECR-এর শুধুমাত্র একটি উপসেট আসলে আমাদের সম্ভাব্য 5076 সম্ভাব্য ECR থাকতে পারে
(অর্থাৎ, 27 MCSs এবং 188 CB আকার)। এই বিষয়ে, আমরা কিছুতে CB আকার সীমাবদ্ধ করব
প্রতিনিধি মান (যেমন, 40, 140, 160, 256, 512, 1024, 2048, 4032, 6144), যখন
আসলটির আনুমানিক সবচেয়ে খারাপ অন্যটি ব্যবহার করা হবে (অর্থাৎ, ছোট সিবি
আকার মান উপলব্ধ বাস্তব এক সম্মান)। এই পছন্দটি সাধারণের সাথে সারিবদ্ধ
টার্বো কোডের কার্যকারিতা, যেখানে CB আকার BLER-এর উপর দৃঢ়ভাবে প্রভাব ফেলছে না।
যাইহোক, এটা উল্লেখ্য যে 1000 বিটের কম CB আকারের জন্য প্রভাব হতে পারে
প্রাসঙ্গিক (অর্থাৎ, 2 ডিবি পর্যন্ত); অতএব, আমরা এই ভারসাম্যহীন নমুনা ব্যবধান গ্রহণ করি
যেখানে প্রয়োজন সেখানে আরও নির্ভুলতা থাকা। এই আচরণ পরিসংখ্যান দ্বারা নিশ্চিত করা হয়
অ্যানেস বিভাগে উপস্থাপিত।

BLER বক্ররেখা
এই বিষয়ে, আমরা [PaduaPEM] এর মধ্যে প্রাপ্ত বক্ররেখার অংশ পুনরায় ব্যবহার করেছি। বিস্তারিতভাবে, আমরা
বিকাশকারীদের সমর্থনে CB BLER কার্ভের সাথে CB আকার নির্ভরতা চালু করেছে
[PaduaPEM] এবং LTE ভিয়েনা সিমুলেটরের। প্রকৃতপক্ষে, প্রকাশিত মডিউল প্রদান করে
লিঙ্ক লেয়ার কার্যকারিতা শুধুমাত্র এমসিএস-এর জন্য উদ্বেগজনক (অর্থাৎ, একটি নির্দিষ্ট ইসিআর সহ)। ভিতরে
প্রতিটির জন্য নতুন ত্রুটি হার বক্ররেখার বিস্তারিত একটি সিমুলেশন প্রচারণার মাধ্যমে মূল্যায়ন করা হয়েছে
AWGN নয়েজ সহ একটি একক লিঙ্কের জন্য এবং 104 এর CB আকারের জন্য লিঙ্ক স্তর সিমুলেটর সহ,
140, 256, 512, 1024, 2048, 4032 এবং 6144। এই বক্ররেখাগুলি গাউসিয়ান দিয়ে ম্যাপ করা হয়েছে
সংবাদদাতাদের b_{ECR} এবং প্রাপ্তির জন্য উপরে উপস্থাপিত ক্রমবর্ধমান মডেল সূত্র
c_{ECR} প্যারামিটার।

লিঙ্ক লেভেল সিমুলেটর দিয়ে প্রাপ্ত সমস্ত MCS-এর BLER পারফরমেন্স প্লট করা হয়েছে
নিম্নলিখিত পরিসংখ্যান (নীল রেখা) একত্রে গাউসিয়ানদের সাথে তাদের সংবাদদাতা ম্যাপিং
ক্রমবর্ধমান বিতরণ (লাল ড্যাশ লাইন)।
[ছবি] MCS 1, 2, 3 এবং 4..UNINDENT-এর জন্য BLER
[ছবি] MCS 5, 6, 7 এবং 8..UNINDENT-এর জন্য BLER
[ছবি] MCS 9, 10, 11 এবং 12..UNINDENT-এর জন্য BLER
[ছবি] MCS 13, 14, 15 এবং 16..UNINDENT-এর জন্য BLER
[ছবি] MCS 17, 17, 19 এবং 20..UNINDENT-এর জন্য BLER
[ছবি] MCS 21, 22, 23 এবং 24..UNINDENT-এর জন্য BLER
[ছবি] MCS 25, 26, 27 এবং 28..UNINDENT-এর জন্য BLER
[ছবি] MCS 29..UNINDENT-এর জন্য BLER

ইন্টিগ্রেশন of দ্য BLER রেখাচিত্র in দ্য ns-3 এলটিই মডিউল
বাস্তবায়িত মডেলটি সাম্প্রতিক LTE PHY ত্রুটি মডেলের LSM-এর জন্য বক্ররেখা ব্যবহার করে
সিগনেট গ্রুপ [পডুয়াপেম] দ্বারা ns3 সম্প্রদায়ে প্রকাশিত এবং নতুনগুলি উত্পন্ন
বিভিন্ন CB আকারের জন্য। দ্য LteSpectrumPhy ক্লাস টিবি BLER মূল্যায়নের দায়িত্বে রয়েছে
দ্বারা প্রদত্ত পদ্ধতির জন্য ধন্যবাদ LteMiErrorModel ক্লাস, যা দায়িত্বে আছে
RB প্রতি অনুভূত SINR এর ভেক্টর অনুযায়ী TB BLER মূল্যায়ন করা, MCS এবং
সিবি-তে যক্ষ্মার বিভাজন সঠিকভাবে মডেল করার জন্য আকার। প্রাপ্ত করার জন্য
অনুভূত SINR এর ভেক্টর দুটি দৃষ্টান্ত LtePemSinrChunk প্রসেসর (এর সন্তান
LteChunk প্রসেসর শারীরিক ত্রুটি কর্মক্ষমতা প্রাপ্ত করার জন্য SINR মূল্যায়ন করতে নিবেদিত)
UE ডাউনলিংক এবং eNB আপলিংকের সাথে সংযুক্ত করা হয়েছে LteSpectrumPhy মূল্যায়নের জন্য মডিউল
PDSCH (UE পাশ) এবং ULSCH (eNB পাশ) যথাক্রমে ত্রুটি মডেল বিতরণ।

সেট করে একটি জিরো-লস চ্যানেলের সাথে কাজ করার জন্য মডেলটিকে নিষ্ক্রিয় করা যেতে পারে Pem সক্ষম
এর বৈশিষ্ট্য LteSpectrumPhy ক্লাস (ডিফল্টরূপে সক্রিয়)। এই অনুযায়ী করা যেতে পারে
স্ট্যান্ডার্ড ns3 অ্যাট্রিবিউট সিস্টেম পদ্ধতিতে, যা হল:

Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanValue (false));

নিয়ন্ত্রণ চ্যানেল PHY ভুল মডেল
সিমুলেটরটিতে ডাউনলিংক কন্ট্রোল চ্যানেলের (PCFICH এবং PDCCH) এরর মডেল রয়েছে,
আপলিঙ্কে থাকাকালীন এটি অনুমান করা হয় এবং আদর্শ ত্রুটি-মুক্ত চ্যানেল। মডেল উপর ভিত্তি করে
ফ্রিকোয়েন্সি নির্বাচনী প্রভাব বিবেচনা করার জন্য আগে উপস্থাপিত MIESM পদ্ধতি
চ্যানেল যেহেতু বেশিরভাগ নিয়ন্ত্রণ চ্যানেল পুরো উপলব্ধ ব্যান্ডউইথকে বিস্তৃত করে।

PCFICH + পিডিসিএইচ ভুল মডেল
এই চ্যানেলগুলির ত্রুটি বিতরণের জন্য গৃহীত মডেলটি একটি মূল্যায়নের উপর ভিত্তি করে
4GPP-এর RAN3-এ সমীক্ষা করা হয়েছে, যেখানে বিভিন্ন বিক্রেতারা তদন্ত করেছেন
PDCCH এর সাথে যৌথভাবে PCFICH এর demodulation কর্মক্ষমতা। এই যে কারণে
PCFICH হল UE-এর সাথে যোগাযোগের দায়িত্বে থাকা চ্যানেলের প্রকৃত মাত্রা
PDCCH (যা 1 থেকে 3 চিহ্নের মধ্যে বিস্তৃত); তাই এর সঠিক ডিকোডিফিকেশন
DCIs উভয়ের সঠিক ব্যাখ্যার উপর নির্ভর করে। 3GPP-এ এই সমস্যা আছে
সেল-এজ পারফরম্যান্সের উন্নতির জন্য মূল্যায়ন করা হয়েছে [ফুজিৎসু হোয়াইটপেপার], যেখানে
সংকেত অবনতির কারণে প্রতিবেশী কোষগুলির মধ্যে হস্তক্ষেপ তুলনামূলকভাবে বেশি হতে পারে। ক
অনুরূপ সমস্যা ফেমটো-সেল দৃশ্যে এবং আরও সাধারণভাবে, HetNet-এ লক্ষ্য করা গেছে
দৃশ্যকল্পে বাধা সনাক্ত করা হয়েছে প্রধানত PCFICH চ্যানেল [ভারুচা2011] হিসাবে,
যেখানে একই পরিষেবা এলাকায় অনেক eNB মোতায়েন করা হয়, এই চ্যানেলটি সংঘর্ষ হতে পারে
ফ্রিকোয়েন্সিতে, PDCCH চ্যানেলের সঠিক সনাক্তকরণও অসম্ভব করে তোলে।

সিমুলেটরে, অভ্যর্থনার সময় অনুভূত SINR অনুযায়ী অনুমান করা হয়েছে
PCFICH এর ত্রুটি বিতরণ মূল্যায়ন করার জন্য উপরে উপস্থাপিত MIESM মডেল এবং
পিডিসিএইচ। বিস্তারিতভাবে, সমস্ত RB-এর SINR নমুনাগুলি MI-এর মূল্যায়নে অন্তর্ভুক্ত করা হয়েছে।
কন্ট্রোল ফ্রেমের সাথে যুক্ত এবং এই মান অনুযায়ী কার্যকর SINR (eSINR)
MI মূল্যায়ন প্রক্রিয়া উল্টে দিয়ে প্রাপ্ত হয়। এটা উল্লেখ্য যে, ক্ষেত্রে
MIMO ট্রান্সমিশন, PCFICH এবং PDCCH উভয়ই সর্বদা ট্রান্সমিট ডাইভারসিটি মোড হিসাবে ব্যবহার করে
মান দ্বারা সংজ্ঞায়িত। eSINR অনুযায়ী decodification ত্রুটি অনুভূত
[R4-081920] এ উপস্থাপিত ফলাফলের ফাংশন হিসাবে সম্ভাব্যতা অনুমান করা যেতে পারে। ক্ষেত্রে
একটি ত্রুটি ঘটলে, ডিসিআই বাতিল করা হয় এবং তাই UE গ্রহণ করতে সক্ষম হবে না
সংবাদদাতা Tbs, ফলে হারিয়ে গেছে.

এমআইএমও মডেল
ট্রান্সমিটার এবং রিসিভার উভয় দিকে একাধিক অ্যান্টেনার ব্যবহার, নামে পরিচিত
মাল্টিপল-ইনপুট এবং মাল্টিপল-আউটপুট (MIMO), সাহিত্যের সময় ভালভাবে অধ্যয়ন করা একটি সমস্যা
বিগত বছরগুলো বেশিরভাগ কাজ বিশ্লেষণাত্মকভাবে লাভের মূল্যায়নে মনোনিবেশ করে
বিভিন্ন MIMO স্কিমের ক্ষমতার মেয়াদ থাকতে পারে; যদিও কেউ প্রদান করে
প্রাপ্ত ক্ষমতার পরিপ্রেক্ষিতে লাভের তথ্য [CatreuxMIMO]।

উপরোক্ত বিবেচনা অনুযায়ী, একটি মডেল আরো নমনীয় বিবেচনা প্রাপ্ত করা যেতে পারে
পরিসংখ্যানগত দৃষ্টিকোণ থেকে MIMO স্কিম সিস্টেমে যে লাভ এনেছে। হিসাবে
আগে হাইলাইট করা হয়েছে, [CatreuxMIMO] বেশ কয়েকটি MIMO সমাধানের পরিসংখ্যানগত লাভ উপস্থাপন করে
অ্যান্টেনার মধ্যে কোনো সম্পর্ক না থাকলে SISO-এর প্রতি শ্রদ্ধা। কাজের মধ্যে
লাভকে আউটপুট SINR এর ক্রমবর্ধমান বিতরণ ফাংশন (CDF) হিসাবে উপস্থাপন করা হয়
SISO, MIMO-Alamouti, MIMO-MMSE, MIMO-OSIC-MMSE এবং MIMO-ZF স্কিমগুলি কী উদ্বেগজনক৷
ফলাফল বিশদভাবে, আউটপুট SINR ডিস্ট্রিবিউশন a এর সাথে আনুমানিক করা যেতে পারে
বিবেচিত স্কিমের ফাংশন হিসাবে বিভিন্ন গড় এবং ভিন্নতা সহ লগ-স্বাভাবিক একটি।
যাইহোক, বৈচিত্রগুলি এত আলাদা নয় এবং সেগুলি প্রায় একের সমান
SISO মোডের শ্যাডোয়িং কম্পোনেন্টে ইতিমধ্যেই অন্তর্ভুক্ত
বিল্ডিংসপ্রপাগেশনলস মডেল, বিস্তারিত:

· SISO: = 13.5 এবং ma = 20 [dB]।

মিমো-আলামাউটি: = 17.7 এবং মা = 11.1 [ডিবি]।

· MIMO-MMSE: = 10.7 এবং ma = 16.6 [dB]।

· MIMO-OSIC-MMSE: = 12.6 এবং ma = 15.5 [dB]।

· MIMO-ZF: = 10.3 এবং ma = 12.6 [dB]।

তাই PHY স্তরটি MIMO মডেলটিকে রিসিভার দ্বারা অনুভূত লাভ হিসাবে প্রয়োগ করে
একটি MIMO স্কিম ব্যবহার করার সময় SISO one ব্যবহার করে প্রাপ্ত একটিকে সম্মান করুন। আমরা যে নোট, এই
লাভ এমন একটি ক্ষেত্রে উল্লেখ করা হয় যেখানে MIMO-তে অ্যান্টেনার মধ্যে কোনো সম্পর্ক নেই
পরিকল্পনা; তাই পাথ পারস্পরিক সম্পর্কের কারণে অবক্ষয় মডেল করবেন না।

UE PHY পরিমাপ মডেল
[TS36214] অনুসারে, UE-কে eNB-এর পরিমাপের একটি সেট রিপোর্ট করতে হবে যেগুলি
ডিভাইস উপলব্ধি করতে সক্ষম: রেফারেন্স সিগন্যাল পাওয়ার পাওয়ার (RSRP) এবং
রেফারেন্স সিগন্যাল প্রাপ্ত গুণমান (RSRQ)। পূর্বের প্রাপ্ত ক্ষমতা একটি পরিমাপ
একটি নির্দিষ্ট eNB, যখন পরবর্তীতে চ্যানেলের হস্তক্ষেপ এবং তাপীয় শব্দও অন্তর্ভুক্ত থাকে।
UE কে ফিজিক্যাল সেল আইডেন্টিটি (PCI) এর সাথে যৌথভাবে পরিমাপের রিপোর্ট করতে হবে
কোষ আরএসআরপি এবং আরএসআরকিউ উভয় পরিমাপই আরএসের অভ্যর্থনার সময় সঞ্চালিত হয়,
যখন PCI প্রাথমিক সিঙ্ক্রোনাইজেশন সিগন্যাল (PSS) দিয়ে প্রাপ্ত হয়। পিএসএস পাঠানো হয়
eNB দ্বারা প্রতিটি 5টি সাবফ্রেম এবং 1 এবং 6 সাবফ্রেমে বিস্তারিত। বাস্তব সিস্টেমে, শুধুমাত্র
504 স্বতন্ত্র PCI পাওয়া যায়, এবং তাই এটি ঘটতে পারে যে দুটি কাছাকাছি eNB ব্যবহার করে
একই PCI; যাইহোক, সিমুলেটরে আমরা সিমুলেশন মেটাডেটা ব্যবহার করে PCIs মডেল করি এবং আমরা অনুমতি দিই
65535 পর্যন্ত স্বতন্ত্র PCIs, যার ফলে PCI সংঘর্ষ এড়াতে পারে যা 65535 এর চেয়ে কম
eNBs একই পরিস্থিতিতে অনুকরণ করা হয়.

[TS36133] বিভাগ 9.1.4 এবং 9.1.7 অনুসারে, RSRP dBm-এ PHY স্তর দ্বারা রিপোর্ট করা হয়েছে
যখন dB তে RSRQ। RSRP এবং RSRQ এর মান উচ্চতর স্তরগুলিতে প্রদান করা হয় এর মাধ্যমে
C-PHY SAP (এর মাধ্যমে UeMeasurments পরামিতি struct) প্রতি 200 ms এ সংজ্ঞায়িত করা হয়েছে
[TS36331]। লেয়ার 1 ফিল্টারিং সংগৃহীত সমস্ত পরিমাপের গড় করে সঞ্চালিত হয়
শেষ উইন্ডো স্লটের সময়। প্রতিবেদনের পর্যায়ক্রমিকতা গবেষণার জন্য সামঞ্জস্য করা যেতে পারে
মাধ্যমে উদ্দেশ্য LteUePhy::UeMeasurmentsFilterPeriod বৈশিষ্ট্যাবলী।

RSRP এবং RSRQ এর সূত্রগুলিকে PHY-এর অনুমান বিবেচনা করে সরলীকরণ করা যেতে পারে
স্তর যে চ্যানেলটি RB এর মধ্যে সমতল, নির্ভুলতার সর্বোত্তম স্তর। আসলে, এই
বোঝায় যে একটি RB-এর মধ্যে সমস্ত RE-এর একই ক্ষমতা রয়েছে, তাই:

যেখানে P(k,m) RB k-এর মধ্যে RE m-এর সংকেত শক্তিকে প্রতিনিধিত্ব করে, যা পর্যবেক্ষণ করা হয়েছে
আগে, একই RB-এর মধ্যে ধ্রুবক এবং P(k) এর সমান, M হল RE-এর সংখ্যা
একটি RB-এ RS এবং K হল RB-এর সংখ্যা। উল্লেখ্য যে P(k), এবং সাধারণভাবে সব
এই বিভাগে সংজ্ঞায়িত ক্ষমতাগুলি RB-এর PSD থেকে সিমুলেটরে প্রাপ্ত হয়
(যা দ্বারা প্রদান করা হয় LteInterferencePowerChunkProcessor), বিস্তারিত:

যেখানে PSD_{RB}(k) হল RB k-এর পাওয়ার বর্ণালী ঘনত্ব, 180000 হল Hz-এ ব্যান্ডউইথ
RB এবং 12 হল একটি OFDM প্রতীকে RB প্রতি RE-এর সংখ্যা। একইভাবে, আরএসএসআই-এর জন্য আমরা
আছে

যেখানে S হল একটি RB-তে RS বহনকারী OFDM চিহ্নের সংখ্যা এবং R হল RE-এর সংখ্যা
একটি OFDM প্রতীকে একটি RS বহন করা (যা 2 এ স্থির করা হয়েছে) যখন P(k,s,r), I(k,s,r) এবং N(k,s,r)
যথাক্রমে পরিবেশন কোষের অনুভূত শক্তি, হস্তক্ষেপ ক্ষমতা এবং প্রতিনিধিত্ব করে
s প্রতীকে RE r এর শব্দ শক্তি। RSRP হিসাবে, একটি RB এর মধ্যে পরিমাপ হয়
PHY মডেল অনুযায়ী সবসময় একে অপরের মধ্যে সমান হয়; অতএব P(k,s,r) = P(k),
I(k,s,r) = I(k) এবং N(k,s,r) = N(k), যা বোঝায় যে RSSI হিসাবে গণনা করা যেতে পারে:

PHY অভ্যর্থনা চেইন বাস্তবায়নের সীমাবদ্ধতা বিবেচনা করে, এবং করার জন্য
কম্পিউটেশনাল জটিলতার মাত্রা কম বজায় রাখুন, শুধুমাত্র RSRP এর জন্য সরাসরি প্রাপ্ত করা যেতে পারে
সমস্ত কোষ। এই যে কারণে LteSpectrumPhy মূল্যায়নের জন্য ডিজাইন করা হয়েছে
হস্তক্ষেপ শুধুমাত্র পরিবেশনকারী eNB-এর সংকেতের প্রতি শ্রদ্ধাশীল। এটি বোঝায় যে PHY
লেয়ারটি পাওয়ার সিগন্যাল তথ্য পরিচালনার জন্য অপ্টিমাইজ করা হয়েছে eNB কে পরিবেশন করে a হিসাবে
রেফারেন্স যাইহোক, প্রতিবেশী সেল i এর RSRP এবং RSRQ কারেন্ট দ্বারা নিষ্কাশন করা যেতে পারে
সার্ভিং সেল j-এর উপলভ্য তথ্য নিম্নে বিশদভাবে দেওয়া আছে:

যেখানে RSRP_i হল প্রতিবেশী কক্ষ i এর RSRP, P_i(k) হল যেকোনো RE-তে অনুভূত শক্তি
RB k এর মধ্যে, K হল RB-এর মোট সংখ্যা, RSSI_i হল প্রতিবেশী কক্ষ i এর RSSI
যখন UE কোষ j এর সাথে সংযুক্ত থাকে (যেহেতু এটি সমস্ত প্রাপ্ত ক্ষমতার সমষ্টি,
RSSI_j-এর সাথে মিলে যায়, I_j(k) হল RB k-এর যেকোনো RE-তে UE দ্বারা অনুভূত মোট হস্তক্ষেপ
যখন সেল i এর সাথে সংযুক্ত থাকে (এর দ্বারা প্রাপ্ত LteInterferencePowerChunkProcessor), P_j(k) হল
RB k এবং N-এর যেকোনো RE-তে কোষ j-এর অনুভূত শক্তি হল পাওয়ার নয়েজ বর্ণালী।
যেকোনো RE-তে ঘনত্ব। RSRQ মূল্যায়নের ক্ষেত্রে নমুনাটি বৈধ বলে বিবেচিত হয়
উপরে LteUePhy::RsrqUeMeasThreshold বৈশিষ্ট্যাবলী।

HARQ
বাস্তবায়িত HARQ স্কিমটি একত্রিত বর্ধিত রিডানডেন্সি (IR) সমাধানের উপর ভিত্তি করে
একটি অবিচ্ছিন্ন ডেটা প্রবাহ সক্ষম করার জন্য একাধিক স্টপ-এন্ড-ওয়েট প্রক্রিয়া সহ। বিস্তারিতভাবে, দ
গৃহীত সমাধান হল নরম মিশ্রন অকুলীন IR পূর্ণ ক্রমবর্ধমান অতিরেক (বলা
আইআর টাইপ II), যা বোঝায় যে পুনঃপ্রচারে শুধুমাত্র নতুন তথ্যের সম্মান রয়েছে
আগেরগুলোর কাছে। HARQ-এর সম্পদ বরাদ্দকরণ অ্যালগরিদম বাস্তবায়িত হয়েছে
সংশ্লিষ্ট শিডিউলার ক্লাসের মধ্যে (যেমন, RrFfMacScheduler এবং PfFfMacScheduler,
আরও তথ্যের জন্য তাদের সংবাদদাতা বিভাগগুলি পড়ুন), যখন এর ডিকোডিফিকেশন অংশ
HARQ বাস্তবায়িত হয়েছে LteSpectrumPhy এবং LteHarqPhy ক্লাস যা হবে
এই বিভাগে বিস্তারিত।

মান অনুযায়ী, ইউএল রিট্রান্সমিশন সিঙ্ক্রোনাস এবং তাই হয়
মূল ট্রান্সমিশনের পরে 7 এমএস বরাদ্দ করা হয়েছে। অন্যদিকে, ডিএল-এর জন্য তারা
অ্যাসিঙ্ক্রোনাস এবং তাই 7 ms থেকে শুরু করে আরও নমনীয় উপায়ে বরাদ্দ করা যেতে পারে
এটি নির্দিষ্ট সময়সূচী বাস্তবায়নের বিষয়। HARQ প্রক্রিয়ার আচরণ হল
চিত্রে চিত্রিত: রেফ:fig-harq-processes-scheme.

MAC স্তরে, শিডিউলারে থাকা HARQ সত্তা নিয়ন্ত্রণের দায়িত্বে থাকে
8টি HARQ প্রসেস নতুন প্যাকেট তৈরি করা এবং উভয়ের জন্য রিট্রান্সমিশন পরিচালনা করে
ডিএল এবং ইউএল। সময়সূচী eNB এবং UE PHY স্তরগুলি থেকে HARQ প্রতিক্রিয়া সংগ্রহ করে৷
(যথাক্রমে UL এবং DL সংযোগের জন্য) FF API আদিম এর মাধ্যমে
SchedUlTriggerReq এবং SchedUlTriggerReq. HARQ ফিডব্যাক এবং RLC অনুযায়ী
বাফার স্থিতি, সময়সূচী উভয় পুনঃপ্রচার সহ DCIs এর একটি সেট তৈরি করে
HARQ ব্লকগুলি ভুল এবং নতুন ট্রান্সমিশন পেয়েছে, সাধারণভাবে, অগ্রাধিকার দেয়
সাবেক এই বিষয়ে, শিডিউলকারীকে যখন একটি সীমাবদ্ধতা বিবেচনা করতে হবে
HARQ পুনঃপ্রচারের জন্য সংস্থান বরাদ্দ করা, এটি অবশ্যই একই মডুলেশন ক্রম ব্যবহার করবে
প্রথম ট্রান্সমিশন প্রয়াস (যেমন, [0..9]-এ MCS-এর জন্য QPSK, [16..10]-এ MCS-এর জন্য 16QAM
এবং [64..17] এ MCS-এর জন্য 28QAM)। এই সীমাবদ্ধতা হারের স্পেসিফিকেশন থেকে আসে
3GPP স্ট্যান্ডার্ডে ম্যাচার [TS36212], যেখানে অ্যালগরিদম মডুলেশন অর্ডার ঠিক করে
রিডানডেন্সি সংস্করণের বিভিন্ন ব্লক তৈরি করা।

PHY ত্রুটি মডেল মডেল (যেমন, LteMiErrorModel ক্লাস ইতিমধ্যে আগে উপস্থাপিত) আছে
[wimaxEmd] অনুযায়ী IR HARQ বিবেচনা করার জন্য বাড়ানো হয়েছে, যেখানে প্যারামিটারগুলি
পুনঃপ্রচারের ক্ষেত্রে MIESM ম্যাপিংয়ের জন্য AWGN কার্ভ ম্যাপিং দেওয়া হয়:

যেখানে X হল মূল তথ্য বিটের সংখ্যা, C_i হল কোডেড বিটের সংখ্যা, M_i হল
কিউ রিট্রান্সমিশনের মোট সংখ্যার উপর HARQ ব্লকের পারস্পরিক তথ্য।
অতএব, যাতে ত্রুটি মডেলের সাথে ত্রুটির সম্ভাবনা ফেরত দিতে সক্ষম হয়
সিমুলেটরে প্রয়োগ করা R_{eff} এবং MI_{I eff} মূল্যায়ন করে এবং মান ফেরত দেয়
একই মড্যুলেশনের ECR-এর ত্রুটির সম্ভাবনার সাথে নিকটতম নিম্ন হারের ক্ষেত্রে
R_{eff}। HARQ রিট্রান্সমিশনের প্রভাব বিবেচনা করার জন্য বক্ররেখার একটি নতুন সেট
মূল MCS-এর জন্য ব্যবহৃত স্ট্যান্ডার্ডের প্রতি একত্রিত করা হয়েছে। নতুন বক্ররেখা
একটি মড্যুলেশনের সবচেয়ে রক্ষণশীল MCS ব্যবহার করা হলে কেস কভার করার উদ্দেশ্যে করা হয়
যা আদর্শ MCS-এর থেকে R_{eff} কম সম্মানের প্রজন্মকে বোঝায়। ইহার উপর
1, 2 এবং 3 পুনঃপ্রচারের জন্য কার্ভগুলি 10 এবং 17 এর জন্য মূল্যায়ন করা হয়েছে।
এমসিএস 0 আমরা শুধুমাত্র প্রথম রিট্রান্সমিশন বিবেচনা করেছি যেহেতু উত্পাদিত কোড রেট ইতিমধ্যেই রয়েছে
খুব রক্ষণশীল (অর্থাৎ, 0.04) এবং অভ্যর্থনার জন্য যথেষ্ট শক্তিশালী একটি ত্রুটি হার প্রদান করে
(অর্থাৎ, BLER এর মন্দা -18 dB কেন্দ্রিক)। উল্লেখ্য যে, দ
প্রথম টিবি সংক্রমণের আকারে সমস্ত তথ্য বিট রয়েছে বলে ধরে নেওয়া হয়েছে
কোড করা তাই X একটি HARQ প্রক্রিয়ার পাঠানো প্রথম TB-এর আকারের সমান। দ্য
মডেল অনুমান করে যে কোডওয়ার্ডগুলিতে প্যারিটি বিটের চূড়ান্ত উপস্থিতি ইতিমধ্যেই রয়েছে
লিঙ্ক স্তর বক্ররেখা বিবেচনা করা হয়. এটি বোঝায় যে যত তাড়াতাড়ি ন্যূনতম R_{eff} হয়
আরও সমতা ট্রান্সমিশনের কারণে লাভ সহ মডেলে পৌঁছেছে
বিট।
[ছবি] HARQ LTE.UNINDENT-এ আচরণ প্রক্রিয়া করে

HARQ-এর অংশটি HARQ ব্লকগুলির ডিকোডিফিকেশন পরিচালনার জন্য নিবেদিত হয়েছে
তে বাস্তবায়িত হয় LteHarqPhy এবং LteSpectrumPhy ক্লাস সাবেক দায়িত্বে আছেন
প্রতিটি সক্রিয় প্রক্রিয়ার জন্য HARQ তথ্য বজায় রাখা। পরেরটির সাথে যোগাযোগ করে
LteMiErrorModel প্রাপ্ত ব্লকের সঠিকতা মূল্যায়নের জন্য ক্লাস এবং অন্তর্ভুক্ত
শিডিউলে HARQ সত্তার সাথে যোগাযোগের দায়িত্বে থাকা মেসেজিং অ্যালগরিদম
ডিকোডিফিকেশনের ফলাফল। এই বার্তাগুলিকে এনক্যাপসুলেট করা হয়েছে৷
dlInfoListElement DL এর জন্য এবং ulInfoListElement UL এর জন্য এবং PUCCH এবং এর মাধ্যমে পাঠানো হয়েছে
PHICH যথাক্রমে তাদের অনুমান অনুযায়ী একটি আদর্শ ত্রুটি মুক্ত মডেল সহ
বাস্তবায়ন. HARQ এবং LTE প্রোটোকল স্ট্যাকের মধ্যে পুনরাবৃত্তির একটি স্কেচ
চিত্রে উপস্থাপন করা হয়েছে: রেফ:fig-harq-স্থাপত্য.

অবশেষে, HARQ ইঞ্জিন সবসময় MAC এবং PHY উভয় স্তরেই সক্রিয় থাকে; যাইহোক, ক্ষেত্রে
সময়সূচী HARQ সমর্থন করে না সিস্টেম HARQ-এর সাথে কাজ করতে থাকবে
ফাংশন বাধা (অর্থাৎ, বাফার ভরা কিন্তু ব্যবহার করা হয় না)। এই বাস্তবায়ন
বৈশিষ্ট্য HARQ এর আগে প্রয়োগ করা শিডিউলারের সাথে পশ্চাদগামী সামঞ্জস্য দেয়
ইন্টিগ্রেশন।
[ছবি] HARQ এবং LTE প্রোটোকল স্ট্যাকের মধ্যে মিথস্ক্রিয়া। UNINDENT

ম্যাক
সংস্থান বণ্টন মডেল
আমরা এখন সংক্ষিপ্তভাবে বর্ণনা করি যে কীভাবে এলটিই-তে সংস্থান বরাদ্দ করা হয় তা স্পষ্ট করে
সিমুলেটরে মডেল করা হয়েছে। শিডিউলকারী নির্দিষ্ট কাঠামো তৈরির দায়িত্বে রয়েছে
নামক উপাত্ত নিয়ন্ত্রণ ইঙ্গিত (DCI) যা পরে eNB এর PHY দ্বারা প্রেরণ করা হয়
সংযুক্ত UEs, যাতে তাদের প্রতি সাবফ্রেমে সম্পদ বরাদ্দ করা হয়
ভিত্তি ডাউনলিংক দিক থেকে এটি করার সময়, সময়সূচীকে কিছু নির্দিষ্ট পূরণ করতে হবে
সমস্ত তথ্য সহ DCI কাঠামোর ক্ষেত্রগুলি, যেমন: মডুলেশন এবং কোডিং
স্কিম (MCS) ব্যবহার করা হবে, MAC ট্রান্সপোর্ট ব্লক (TB) আকার এবং বরাদ্দ বিটম্যাপ
যা শনাক্ত করে যে কোন RB-তে প্রতিটি ব্যবহারকারীর কাছে eNB দ্বারা প্রেরিত ডেটা থাকবে।

ভৌত RB-তে সম্পদের ম্যাপিংয়ের জন্য, আমরা একটি গ্রহণ করি স্থানীয়করণ ম্যাপিং পদ্ধতি (দেখুন
[Sesia2009], ধারা 9.2.2.1); তাই একটি প্রদত্ত সাবফ্রেমে প্রতিটি RB সর্বদা বরাদ্দ করা হয়
উভয় স্লটে একই ব্যবহারকারী। বরাদ্দ বিটম্যাপ বিভিন্ন ফরম্যাটে কোড করা যেতে পারে; ভিতরে
এই বাস্তবায়ন, আমরা বিবেচনা বণ্টন আদর্শ 0 [TS36213] এ সংজ্ঞায়িত করা হয়েছে, অনুযায়ী
যার জন্য RBগুলিকে বিভিন্ন আকারের রিসোর্স ব্লক গ্রুপে (RBG) গোষ্ঠীভুক্ত করা হয়েছে
ব্যবহৃত ট্রান্সমিশন ব্যান্ডউইথ কনফিগারেশনের একটি ফাংশন হিসাবে।

নির্দিষ্ট ব্যান্ডউইথ মানের জন্য সমস্ত RB ব্যবহারযোগ্য নয়, যেহেতু গ্রুপের আকার a নয়
দলের সাধারণ বিভাজক। ব্যান্ডউইথ সমান হলে এই ক্ষেত্রে
25 RB, যার ফলস্বরূপ RBG আকার 2 RB, এবং সেইজন্য 1 RB ফলাফল হবে না
ঠিকানাযোগ্য আপলিংকে DCI-এর বিন্যাস ভিন্ন, যেহেতু শুধুমাত্র সংলগ্ন RB-গুলিই পারে
SC-FDMA মড্যুলেশনের কারণে ব্যবহার করা হবে। ফলস্বরূপ, সমস্ত RB এর দ্বারা বরাদ্দ করা যেতে পারে
ব্যান্ডউইথ কনফিগারেশন নির্বিশেষে eNB।

অভিযোজিত সামঁজস্যবিধান এবং কোডিং
সিমুলেটর দুটি অ্যাডাপটিভ মডুলেশন এবং কোডিং (এএমসি) মডেল সরবরাহ করে: একটি
GSoC মডেল [Piro2011] এবং একটি শারীরিক ত্রুটি মডেলের উপর ভিত্তি করে (এতে বর্ণিত
নিম্নলিখিত বিভাগগুলি)।

প্রাক্তন মডেলটি [Piro2011]-এ বর্ণিত মডেলের একটি পরিবর্তিত সংস্করণ, যা পরবর্তীতে
[Seo2004] থেকে অনুপ্রাণিত। আমাদের সংস্করণ নিম্নলিখিত বর্ণনা করা হয়. আমি বোঝাতে দিন
জেনেরিক ব্যবহারকারী, এবং mma_i এর SINR হতে দিন। আমরা ব্যবহারকারী i এর বর্ণালী দক্ষতা \ta_i পাই
নিম্নলিখিত সমীকরণ ব্যবহার করে:

[R1-081483] এ বর্ণিত পদ্ধতিটি সংশ্লিষ্ট MCS স্কিম পেতে ব্যবহৃত হয়। দ্য
চ্যানেল কোয়ালিটি ইন্ডিকেটর (CQI) এর উপর ভিত্তি করে বর্ণালী দক্ষতা পরিমাপ করা হয়
সর্বনিম্ন মান, এবং সংশ্লিষ্ট MCS স্কিমে ম্যাপ করা হয়।

অবশেষে, আমরা লক্ষ্য করি যে [R1-081483] এ MCS সূচকের মধ্যে কিছু অমিল রয়েছে
এবং এটি মান দ্বারা নির্দেশিত: [TS36213] টেবিল 7.1.7.1-1 বলছে যে MCS সূচক
0 থেকে 31 পর্যন্ত যায়, এবং 0 একটি বৈধ MCS স্কিম বলে মনে হয় (টিবি আকার 0 নয়) কিন্তু
[R1-081483] প্রথম দরকারী এমসিএস সূচক হল 1। তাই মানটি যেমন উদ্দেশ্য করে
স্ট্যান্ডার্ড আমাদের [R1-1] এ রিপোর্ট করা সূচক থেকে 081483 বিয়োগ করতে হবে।

বিকল্প মডেলটি এই সিমুলেটরের জন্য তৈরি শারীরিক ত্রুটি মডেলের উপর ভিত্তি করে
এবং নিম্নলিখিত উপধারায় ব্যাখ্যা করা হয়েছে। এই স্কিমটি MCS নির্বাচনকে মানিয়ে নিতে সক্ষম
নির্দিষ্ট CQI রিপোর্ট অনুযায়ী প্রকৃত PHY স্তর কর্মক্ষমতা. অনুসারে
তাদের সংজ্ঞা, একটি CQI সূচক নির্ধারিত হয় যখন মডুলেশন সহ একটি একক PDSCH TB
কোডিং স্কিম এবং কোড রেট [TS7.2.3] এর টেবিল 1-36213-এর সেই CQI সূচকের সাথে সম্পর্কিত
0.1 এর কম ত্রুটির সম্ভাবনা সহ প্রাপ্ত করা যেতে পারে। ওয়াইডব্যান্ড সিকিউআই-এর ক্ষেত্রে,
রেফারেন্স টিবি এর উপর ভিত্তি করে একটি রেফারেন্স পাওয়ার জন্য উপলব্ধ সমস্ত RBG অন্তর্ভুক্ত করে
সম্পূর্ণ উপলব্ধ সম্পদ; যখন, সাবব্যান্ড CQI-এর জন্য, রেফারেন্স টিবিকে RBG হিসাবে আকার দেওয়া হয়।

পরিবহন বাধা মডেল
সিমুলেটর দ্বারা প্রদত্ত MAC ট্রান্সপোর্ট ব্লকের (TBs) মডেলটি এর সাথে সরল করা হয়েছে
3GPP স্পেসিফিকেশনের প্রতি শ্রদ্ধাশীল। বিশেষ করে, একটি সিমুলেটর-নির্দিষ্ট শ্রেণী
(প্যাকেটবার্স্ট) সিমুলেটরের সমতুল্য অর্জনের জন্য MAC SDU গুলিকে একত্রিত করতে ব্যবহৃত হয়
একটি টিবি, সংশ্লিষ্ট বাস্তবায়ন জটিলতা ছাড়া। এর মাল্টিপ্লেক্সিং
আরএলসি স্তর থেকে বিভিন্ন লজিক্যাল চ্যানেল একটি ডেডিকেটেড প্যাকেট ব্যবহার করে সঞ্চালিত হয়
ট্যাগ (LteRadioBearerTag), যা একটি কার্যকারিতা সম্পাদন করে যা আংশিকভাবে সমতুল্য
3GPP দ্বারা নির্দিষ্ট করা MAC শিরোনামগুলির মধ্যে।

সার্জারির ফেমটোফোরাম ম্যাক নির্ধারণকারী ইন্টারফেস
এই বিভাগটি LTE MAC শিডিউলার ইন্টারফেসের ns-3 নির্দিষ্ট সংস্করণ বর্ণনা করে
ফেমটোফোরাম [এফএফএপিআই] দ্বারা প্রকাশিত স্পেসিফিকেশন।

আমরা FemtoForum MAC শিডিউলার ইন্টারফেসের ns-3 নির্দিষ্ট সংস্করণ প্রয়োগ করেছি [FFAPI]
C++ বিমূর্ত ক্লাসের একটি সেট হিসাবে; বিশেষ করে, প্রতিটি আদিম একটি C++ এ অনুবাদ করা হয়
একটি প্রদত্ত শ্রেণীর পদ্ধতি। পদ বাস্তবায়িত এখানে গৃহীত একই অর্থ ব্যবহার করা হয়েছে
[FFAPI]-এ, এবং তাই লজিক্যাল ইন্টারফেস অনুবাদ করার প্রক্রিয়াকে বোঝায়
একটি নির্দিষ্ট প্রোগ্রামিং ভাষার স্পেসিফিকেশন। [FFAPI]-এর আদিম গোষ্ঠীবদ্ধ
দুটি গ্রুপে: CSCHED আদিম, যা শিডিউলার কনফিগারেশন নিয়ে কাজ করে এবং
SCHED আদিম, যা শিডিউলারের নির্বাহের সাথে ডিল করে। উপরন্তু, [FFAPI]
দুটি ভিন্ন ধরণের আদিম সংজ্ঞায়িত করে: REQ টাইপগুলি MAC থেকে তে যায়৷
শিডিউলার, এবং IND/CNF টাইপগুলি শিডিউলার থেকে MAC-তে যায়৷ এগুলো অনুবাদ করতে
C++ এর বৈশিষ্ট্যগুলি, আমরা নিম্নলিখিত বিমূর্ত ক্লাসগুলিকে সংজ্ঞায়িত করি যা পরিষেবাটি বাস্তবায়ন করে
আদিম ইস্যু করার জন্য অ্যাক্সেস পয়েন্ট (SAPs) ব্যবহার করা হবে:

· দ্য FfMacSchedSapProvider ক্লাস SCHED এর সাথে সম্পর্কিত সমস্ত C++ পদ্ধতি সংজ্ঞায়িত করে
REQ প্রকারের আদিম;

· দ্য FfMacSchedSapUser ক্লাস SCHED এর সাথে সম্পর্কিত সমস্ত C++ পদ্ধতি সংজ্ঞায়িত করে
CNF/IND ধরনের আদিম;

· দ্য FfMacCschedSapProvider ক্লাস সমস্ত C++ পদ্ধতি সংজ্ঞায়িত করে যা অনুরূপ
REQ প্রকারের CSCHED আদিম;

· দ্য FfMacCschedSapUser ক্লাস CSCHED এর সাথে সম্পর্কিত সমস্ত C++ পদ্ধতি সংজ্ঞায়িত করে
CNF/IND ধরনের আদিম;

MAC শিডিউলার ইন্টারফেসে 3টি ব্লক জড়িত: কন্ট্রোল ব্লক, সাবফ্রেম ব্লক
এবং শিডিউলার ব্লক। এই ব্লকগুলির প্রত্যেকটি MAC শিডিউলার ইন্টারফেসের একটি অংশ প্রদান করে।
নীচের চিত্রটি আমাদের সংজ্ঞায়িত ব্লক এবং SAP-এর মধ্যে সম্পর্ক দেখায়
MAC শিডিউলার ইন্টারফেসের বাস্তবায়ন।
[ছবি]

উপরের নীতিগুলি ছাড়াও, নিম্নলিখিত নকশা পছন্দগুলি নেওয়া হয়েছে:

MAC শিডিউলার ইন্টারফেস ক্লাসের সংজ্ঞা নামকরণের নিয়ম অনুসরণ করে
এর ns-3 কোডিং স্টাইল। বিশেষ করে, আমরা ক্যামেলকেস কনভেনশন অনুসরণ করি
আদিম নাম। যেমন আদিম CSCHED_CELL_CONFIG_REQ অনুবাদ করা হয়
CschedCellConfigReq মধ্যে ns-3 কোড।

আদিম পরামিতিগুলির জন্য একই নামকরণের নিয়ম অনুসরণ করা হয়। হিসাবে
আদিম পরামিতি হল ক্লাসের সদস্য ভেরিয়েবল, এগুলিও a এর সাথে উপসর্গযুক্ত
m_.

· ডেটা স্ট্রাকচারে ভেক্টর এবং তালিকার ব্যবহার সম্পর্কে, আমরা লক্ষ্য করি যে [FFAPI] হল a
মোটামুটি সি-ওরিয়েন্টেড এপিআই। যাইহোক, বিবেচনা করা হয় যে C++ ns-3-এ ব্যবহার করা হয়েছে এবং সেটা
সি অ্যারে ব্যবহার নিরুৎসাহিত করা হয়, আমরা STL ভেক্টর ব্যবহার করি (std::ভেক্টর) জন্য
সি অ্যারে ব্যবহার করার পরিবর্তে MAC শিডিউলার ইন্টারফেসের বাস্তবায়ন
যেভাবে [FFAPI] লেখা হয়েছে তার দ্বারা পরোক্ষভাবে প্রস্তাবিত।

· C++ এ, কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর সহ সদস্যদের প্রবেশের অনুমতি নেই ইউনিয়ন. তাই সব
যে ডাটা স্ট্রাকচার বলা হয় ইউনিয়ন [FFAPI] এ হিসাবে সংজ্ঞায়িত করা হয়েছে
কাঠামো আমাদের কোডে।

নীচের চিত্রটি দেখায় কিভাবে MAC শিডিউলার ইন্টারফেস eNB-এর মধ্যে ব্যবহার করা হয়।
[ছবি]

CSCHED SAP এবং SCHED SAP উভয়েরই ব্যবহারকারীর দিক eNB MAC-এর মধ্যে প্রয়োগ করা হয়,
অর্থাৎ, ফাইলে lte-enb-mac.cc. eNB MAC বিভিন্ন শিডিউলারের সাথে ব্যবহার করা যেতে পারে
পরিবর্তন ছাড়া বাস্তবায়ন. একই চিত্র এছাড়াও দেখায়, একটি উদাহরণ হিসাবে, কিভাবে
রাউন্ড রবিন শিডিউলার প্রয়োগ করা হয়েছে: eNB এর MAC এর সাথে ইন্টারঅ্যাক্ট করতে, রাউন্ড রবিন
শিডিউলার SCHED SAP এবং CSCHED SAP ইন্টারফেসের প্রোভাইডার সাইড প্রয়োগ করে। ক
অনুরূপ পদ্ধতির পাশাপাশি অন্যান্য সময়সূচী প্রয়োগ করতে ব্যবহার করা যেতে পারে। প্রতিটির একটি বর্ণনা
আমাদের এলটিই সিমুলেশন মডিউলের অংশ হিসাবে আমরা যে শিডিউলার বাস্তবায়ন প্রদান করি তা হল
নিম্নলিখিত উপধারা প্রদান করা হয়.

বৃত্তাকার পক্ষীবিশেষ (আরআর) নির্ধারণকারী
রাউন্ড রবিন (RR) শিডিউলার সম্ভবত সাহিত্যে পাওয়া সবচেয়ে সহজ সময়সূচী।
এটি সক্রিয় প্রবাহের মধ্যে উপলব্ধ সংস্থানগুলিকে ভাগ করে কাজ করে, অর্থাৎ, সেইগুলি যৌক্তিক৷
যে চ্যানেলগুলিতে একটি অ-খালি RLC সারি আছে। আরবিজির সংখ্যা বেশি হলে
সক্রিয় প্রবাহের সংখ্যা, সমস্ত প্রবাহ একই সাবফ্রেমে বরাদ্দ করা যেতে পারে। অন্যথায়, যদি
সক্রিয় প্রবাহের সংখ্যা RBG-এর সংখ্যার চেয়ে বেশি, সমস্ত প্রবাহ হতে পারে না
একটি প্রদত্ত সাবফ্রেমে নির্ধারিত; তারপর, পরবর্তী সাবফ্রেম থেকে বরাদ্দ শুরু হবে
শেষ প্রবাহ যা বরাদ্দ করা হয়নি। প্রতিটি ব্যবহারকারীর জন্য গৃহীত MCS সম্পন্ন হয়
প্রাপ্ত ওয়াইডব্যান্ড সিকিউআই অনুসারে।

HARQ-এর উদ্বেগের জন্য, RR নন-অ্যাডাপ্টিভ সংস্করণ প্রয়োগ করে, যা এর মধ্যে বোঝায়
রিট্রান্সমিশন প্রচেষ্টা বরাদ্দ RR একই বরাদ্দ কনফিগারেশন ব্যবহার করে
মূল ব্লক, যার অর্থ একই RBGs এবং MCS বজায় রাখা। জন্য বরাদ্দ করা হয় যে UE
HARQ রিট্রান্সমিশনগুলি নতুন ডেটা ট্রান্সমিশনের ক্ষেত্রে বিবেচনা করা হয় না যদি তাদের কাছে থাকে
একই TTI-তে ট্রান্সমিশনের সুযোগ পাওয়া যায়। অবশেষে, HARQ এর সাথে অক্ষম করা যেতে পারে
পুরানো টেস্ট কেস এবং কোডের সাথে পশ্চাদপদ সামঞ্জস্য বজায় রাখার জন্য ns3 অ্যাট্রিবিউট সিস্টেম,
বিস্তারিত:

Config::SetDefault ("ns3::RrFfMacScheduler::HarqEnabled", BooleanValue (false));

সময়সূচী আপলিংক CQI-এর ফিল্টারিং তাদের প্রকৃতি অনুযায়ী প্রয়োগ করে
UlCqiFilter attibut, বিস্তারিতভাবে:

· SRS_UL_CQI: শুধুমাত্র SRS ভিত্তিক CQI অভ্যন্তরীণ বৈশিষ্ট্যগুলিতে সংরক্ষণ করা হয়।

· PUSCH_UL_CQI: শুধুমাত্র PUSCH ভিত্তিক CQI অভ্যন্তরীণ বৈশিষ্ট্যগুলিতে সংরক্ষণ করা হয়।

· ALL_UL_CQI: সমস্ত CQI একই অভ্যন্তরীণ অ্যাটিবিউটে সংরক্ষণ করা হয় (অর্থাৎ, শেষ CQI
প্রাপ্ত তার প্রকৃতি থেকে স্বাধীনভাবে সংরক্ষণ করা হয়)।

সমানুপাতিক ন্যায্য (পিএফ) নির্ধারণকারী
আনুপাতিক মেলা (PF) শিডিউলার [Sesia2009] একজন ব্যবহারকারীর সময় নির্ধারণ করে কাজ করে যখন এটি
তাত্ক্ষণিক চ্যানেলের মান তার নিজস্ব গড় চ্যানেলের অবস্থার তুলনায় উচ্চ
সময় জেনেরিক ব্যবহারকারীদের বোঝাতে দিন; টি সাবফ্রেম সূচক হতে দিন, এবং k হল সম্পদ
ব্লক সূচক; M_{i,k}(t) কে কি অনুসারে রিসোর্স ব্লক k-তে ব্যবহারকারী i দ্বারা MCS ব্যবহারযোগ্য হতে দিন
এএমসি মডেল দ্বারা রিপোর্ট করা হয়েছে (দেখুন অভিযোজিত সামঁজস্যবিধান এবং কোডিং); অবশেষে, S(M, B) হতে দিন
টিবি আকার বিটে সংজ্ঞায়িত হিসাবে [TS36213] ক্ষেত্রে যেখানে সম্পদের একটি সংখ্যা B
ব্লক ব্যবহার করা হয়। রিসোর্স ব্লক গ্রুপে ব্যবহারকারী i এর জন্য বিট/সেকেন্ডে অর্জনযোগ্য হার R_{i}(k,t)
সাবফ্রেম টি-তে k কে সংজ্ঞায়িত করা হয়েছে

যেখানে au হল TTI সময়কাল। প্রতিটি সাবফ্রেম t এর শুরুতে, প্রতিটি RBG a কে বরাদ্দ করা হয়
নির্দিষ্ট ব্যবহারকারী। বিস্তারিতভাবে, সূচী 144__{k}(t) যেখানে RBG k নির্ধারিত হয় t সময়ে
হিসাবে নির্ধারিত

যেখানে T_{j}(t) হল ব্যবহারকারী j দ্বারা অনুভূত অতীত থ্রুগপুট কর্মক্ষমতা। অনুসারে
উপরের শিডিউলিং অ্যালগরিদম, একজন ব্যবহারকারীকে বিভিন্ন RBG-তে বরাদ্দ করা যেতে পারে, যা হতে পারে
চ্যানেলের বর্তমান অবস্থা এবং অতীতের উপর নির্ভর করে সংলগ্ন বা না
থ্রুপুট কর্মক্ষমতা T_{j}(t)। পরেরটি সাবফ্রেম টি এর শেষে নির্ধারিত হয়
নিম্নলিখিত সূচকীয় চলমান গড় পদ্ধতি ব্যবহার করে:

যেখানে lpha হল সূচকীয় চলনের সময় ধ্রুবক (সাবফ্রেমের সংখ্যায়)
গড়, এবং 384s সাবফ্রেম টি-তে ব্যবহারকারী i দ্বারা অর্জিত প্রকৃত থ্রুপুট। 360 হল
নিম্নলিখিত পদ্ধতি অনুযায়ী পরিমাপ করা হয়। প্রথমে আমরা MCS 840 j নির্ধারণ করি:

তারপর আমরা মোট সংখ্যা 936 j নির্ধারণ করি:

যেখানে |

HARQ-এর উদ্বেগের জন্য, PF নন-অ্যাডাপ্টিভ সংস্করণ প্রয়োগ করে, যা বোঝায় যে এতে
রিট্রান্সমিশন বরাদ্দ করার সময় শিডিউলকারী একই বরাদ্দ ব্যবহার করে
মূল ব্লকের কনফিগারেশন, যার অর্থ একই RBGs এবং MCS বজায় রাখা। UEs
যেগুলি HARQ পুনঃপ্রচারের জন্য বরাদ্দ করা হয় তা নতুন ট্রান্সমিশনের জন্য বিবেচনা করা হয় না
একই টিটিআই-তে ডেটা পাঠানোর সুযোগ থাকলে। অবশেষে, HARQ
পুরানো সাথে পশ্চাদপদ সামঞ্জস্য বজায় রাখার জন্য ns3 অ্যাট্রিবিউট সিস্টেমের সাথে নিষ্ক্রিয় করা যেতে পারে
পরীক্ষার ক্ষেত্রে এবং কোড, বিস্তারিতভাবে:

Config::SetDefault ("ns3::PfFfMacScheduler::HarqEnabled", BooleanValue (false));

সর্বাধিক থ্রুপুট (MT) এবং নির্ধারণকারী
ম্যাক্সিমাম থ্রুপুট (MT) শিডিউলার [FCapo2012] সামগ্রিক থ্রুপুট সর্বাধিক করার লক্ষ্য রাখে
eNB এর। এটি প্রতিটি RB ব্যবহারকারীর জন্য বরাদ্দ করে যা সর্বোচ্চ অর্জনযোগ্য হার অর্জন করতে পারে
বর্তমান টিটিআই। বর্তমানে, NS-3-এ MT শিডিউলারের দুটি সংস্করণ রয়েছে: ফ্রিকোয়েন্সি ডোমেইন
(FDMT) এবং সময় ডোমেইন (TDMT)। FDMT-এ, প্রতিটি TTI, MAC সময়সূচী UE-কে RBG বরাদ্দ করে
যার সাবব্যান্ড CQI দ্বারা গণনা করা সর্বোচ্চ অর্জনযোগ্য হার রয়েছে। TDMT-এ, প্রতিটি TTI, MAC
সময়সূচী একটি UE নির্বাচন করে যার সর্বাধিক অর্জনযোগ্য হার রয়েছে ওয়াইডব্যান্ড CQI দ্বারা গণনা করা হয়েছে।
তারপর MAC শিডিউলার বর্তমান TTI-এ এই UE-তে সমস্ত RBG বরাদ্দ করে। এর হিসাব
FDMT এবং TDMT-এ অর্জনযোগ্য হার PF-এর মতোই। আমি, j জেনেরিক বোঝাই
ব্যবহারকারী; টি সাবফ্রেম সূচক হতে দিন, এবং k হল রিসোর্স ব্লক সূচক; M_{i,k}(t) হতে দিন
এএমসি মডেলের রিপোর্ট অনুসারে রিসোর্স ব্লক k-তে ব্যবহারকারীর দ্বারা MCS ব্যবহারযোগ্য (দেখুন
অভিযোজিত সামঁজস্যবিধান এবং কোডিং); পরিশেষে, S(M, B) কে সংজ্ঞায়িত বিটে টিবি আকার হতে দিন
[TS36213] ক্ষেত্রে যেখানে একটি সংখ্যা B রিসোর্স ব্লক ব্যবহার করা হয়। অর্জনযোগ্য হার
সাবফ্রেম টি-তে রিসোর্স ব্লক k-এর ব্যবহারকারী i-এর জন্য বিট/সেকেন্ডে R_{i}(k,t) সংজ্ঞায়িত করা হয়েছে

যেখানে au হল TTI সময়কাল। প্রতিটি সাবফ্রেম টি-এর শুরুতে, প্রতিটি RB a কে বরাদ্দ করা হয়
নির্দিষ্ট ব্যবহারকারী। বিস্তারিতভাবে, সূচী 144__{k}(t) যেখানে RB k নির্ধারিত হয় t সময়ে
হিসাবে নির্ধারিত

যখন একই অর্জনযোগ্য হারে বেশ কয়েকটি UE থাকে, তখন বর্তমান বাস্তবায়ন সর্বদা
স্ক্রিপ্টে তৈরি প্রথম UE নির্বাচন করে। যদিও MT সেল থ্রুপুট সর্বাধিক করতে পারে, এটি
দুর্বল চ্যানেল অবস্থায় UE-কে ন্যায্যতা প্রদান করতে পারে না।

থ্রুপুট থেকে গড় (টিটিএ) নির্ধারণকারী
থ্রুপুট টু এভারেজ (TTA) শিডিউলার [FCapo2012] একটি মধ্যবর্তী হিসাবে বিবেচিত হতে পারে
MT এবং PF এর মধ্যে। TTA-তে ব্যবহৃত মেট্রিক নিম্নরূপ গণনা করা হয়:

এখানে, বিট/সেকেন্ডে R_{i}(k,t) রিসোর্স ব্লক k-তে ব্যবহারকারীর জন্য অর্জনযোগ্য হারকে প্রতিনিধিত্ব করে
সাবফ্রেম টি. গণনা পদ্ধতিটি ইতিমধ্যেই MT এবং PF-এ দেখানো হয়েছে। এদিকে, R_{i}(t) ইন
bit/s মানে সাবফ্রেম t-এ i-এর অর্জনযোগ্য হার। এই দুইয়ের মধ্যে পার্থক্য
অর্জনযোগ্য হার হল কিভাবে MCS পেতে হয়। R_{i}(k,t), MCS সাবব্যান্ড CQI দ্বারা গণনা করা হয় যখন
R_{i}(t) ওয়াইডব্যান্ড CQI দ্বারা গণনা করা হয়। TTA শিডিউলার শুধুমাত্র ফ্রিকোয়েন্সিতে প্রয়োগ করা যেতে পারে
ডোমেইন (FD) কারণ নির্দিষ্ট RBG এর অর্জনযোগ্য হার শুধুমাত্র FD এর সাথে সম্পর্কিত
সময়সূচী

অন্ধ গড় থ্রুপুট নির্ধারণকারী
ব্লাইন্ড এভারেজ থ্রুপুট শিডিউলার [FCapo2012] এর লক্ষ্য সকলকে সমান থ্রুপুট প্রদান করা
ENB এর অধীনে UEs। TTA-তে ব্যবহৃত মেট্রিক নিম্নরূপ গণনা করা হয়:

যেখানে T_{j}(t) হল অতীতের থ্রুপুট কর্মক্ষমতা যা ব্যবহারকারী j দ্বারা অনুভূত এবং হতে পারে
PF শিডিউলারে একই পদ্ধতি দ্বারা গণনা করা হয়। সময়ের মধ্যে ডোমেইন ব্লাইন্ড গড় থ্রুপুট
(TD-BET), সময়সূচী সর্বাধিক অগ্রাধিকার মেট্রিক সহ UE নির্বাচন করে এবং সমস্ত RBG বরাদ্দ করে
এই UE থেকে. অন্যদিকে, ফ্রিকোয়েন্সি ডোমেনে অন্ধ গড় থ্রুপুট (FD-BET),
প্রতিটি TTI, সময়সূচী সর্বনিম্ন pastAverageThroughput (সবচেয়ে বড়) সহ একটি UE নির্বাচন করে
অগ্রাধিকার মেট্রিক)। তারপর সময়সূচী এই UE-তে একটি RBG বরাদ্দ করে, এটি প্রত্যাশিত গণনা করে
এই UE এর থ্রুপুট এবং এটি ব্যবহার করে অতীতের গড় থ্রুপুট T_{j}(t) এর সাথে তুলনা করতে
অন্যান্য UE. সময়সূচী প্রত্যাশিত না হওয়া পর্যন্ত এই UE-তে RBG বরাদ্দ করতে থাকে
সমস্ত UE-এর অতীত গড় থ্রুপুট T_{j}(t) এর মধ্যে থ্রুপুট সবচেয়ে ছোট নয়। তারপর
শিডিউলকারী একটি নতুন UE-এর জন্য RBG বরাদ্দ করতে একই উপায় ব্যবহার করবে যার অতীত সর্বনিম্ন
গড় থ্রুপুট T_{j}(t) যতক্ষণ না সমস্ত RBG UE-তে বরাদ্দ করা হয়। এর পেছনে নীতি
তা হল, প্রতিটি টিটিআই-এ, শিডিউলার মধ্যে সমান থ্রুপুট অর্জনের জন্য সর্বোত্তম চেষ্টা করে
সমস্ত UE.

টোকেন ব্যাংক ন্যায্য কিউ নির্ধারণকারী
টোকেন ব্যাঙ্ক ফেয়ার কিউ (TBFQ) হল একটি QoS সচেতন সময়সূচী যা লিকি-বালতি থেকে উদ্ভূত
পদ্ধতি. TBFQ-তে, ব্যবহারকারী i এর একটি ট্রাফিক প্রবাহ নিম্নলিখিত পরামিতি দ্বারা চিহ্নিত করা হয়:

· t_{i}: প্যাকেটের আগমনের হার (বাইট/সেকেন্ড)

· r_{i}: টোকেন জেনারেশন রেট (বাইট/সেকেন্ড)

· p_{i}: টোকেন পুলের আকার (বাইট)

· E_{i}: কাউন্টার যা টোকেন থেকে ধার নেওয়া বা দেওয়া টোকেনের সংখ্যা রেকর্ড করে
প্রবাহ i দ্বারা ব্যাংক; E_{i} শূন্যের চেয়ে ছোট হতে পারে

প্রতিটি K বাইট ডেটা k টোকেন ব্যবহার করে। এছাড়াও, TBFQ একটি শেয়ার্ড টোকেন ব্যাঙ্ক (B) বজায় রাখে
বিভিন্ন প্রবাহের মধ্যে ট্রাফিকের ভারসাম্য বজায় রাখুন। যদি টোকেন জেনারেশন রেট r_{i} এর থেকে বড় হয়
প্যাকেটের আগমনের হার t_{i}, তারপর টোকেন পুল থেকে উপচে পড়া টোকেন টোকেনে যোগ করা হয়
ব্যাংক, এবং E_{i} একই পরিমাণ দ্বারা বৃদ্ধি করা হয়। অন্যথায়, প্রবাহ আমাকে প্রত্যাহার করতে হবে
অগ্রাধিকার মেট্রিক ফ্র্যাক{E_{i}}{r_{i}} এর উপর ভিত্তি করে টোকেন ব্যাঙ্ক থেকে টোকেন, এবং E_{i} হল
কমেছে স্পষ্টতই, ব্যবহারকারী টোকেন ব্যাঙ্কে আরও বেশি অবদান রাখে যার অগ্রাধিকার রয়েছে
টোকেন ধার; অন্যদিকে, ব্যাঙ্ক থেকে ব্যবহারকারীর বেশি টোকেন ধার কম হয়েছে
অগ্রাধিকার টোকেন প্রত্যাহার অবিরত. অতএব, বেশ কিছু ব্যবহারকারীর ক্ষেত্রে
একই টোকেন জেনারেশন রেট, ট্র্যাফিক রেট এবং টোকেন পুলের আকার, ব্যবহারকারী বেশি ভোগে
হস্তক্ষেপ ব্যাঙ্ক থেকে টোকেন ধার আরো সুযোগ আছে. এ ছাড়া পুলিশ টিবিএফকিউ করতে পারে
থ্রুপুট সীমিত করতে টোকেন জেনারেশন রেট সেট করে ট্রাফিক। উপরন্তু,
TBFQ এছাড়াও প্রতিটি প্রবাহের জন্য নিম্নলিখিত তিনটি পরামিতি বজায় রাখে:

· ঋণের সীমা d_{i}: যদি E_{i} এই থ্রেশহোল্ডের নীচে থাকে, ব্যবহারকারী আমি আর টোকেন ধার করতে পারি না
ব্যাংক থেকে। এটি দূষিত UE-কে অত্যধিক টোকেন ধার নিতে বাধা দেওয়ার জন্য।

· ক্রেডিট লিমিট c_{i}: সর্বোচ্চ সংখ্যক টোকেন UE আমি ব্যাঙ্ক থেকে একটিতে ধার করতে পারি
সময়।

· ক্রেডিট থ্রেশহোল্ড C: একবার E_{i} ঋণের সীমায় পৌঁছে গেলে, UE আমাকে অবশ্যই C টোকেনগুলি ব্যাঙ্কে সংরক্ষণ করতে হবে
ব্যাঙ্ক থেকে আরও টোকেন ধার করার জন্য।

NS-3-এ LTE-এর TBFQ শিডিউলারের দুটি সংস্করণ রয়েছে: ফ্রিকোয়েন্সি ডোমেন TBFQ (FD-TBFQ) এবং সময়
ডোমেইন TBFQ (TD-TBFQ)। FD-TBFQ-তে, সময়সূচী সর্বদা সর্বোচ্চ মেট্রিক সহ UE নির্বাচন করে
UE এর RLC বাফারের মধ্যে কোনো প্যাকেট না থাকা পর্যন্ত RBG সর্বোচ্চ সাবব্যান্ড CQI দিয়ে বরাদ্দ করে
অথবা সমস্ত RBG বরাদ্দ করা হয়েছে [FABokhari2009]। TD-TBFQ-তে, সর্বোচ্চ সহ UE নির্বাচন করার পরে
মেট্রিক, এটি ওয়াইডব্যান্ড CQI [WKWong2004] ব্যবহার করে এই UE-তে সমস্ত RBG বরাদ্দ করে।

অগ্রাধিকার সেট নির্ধারণকারী
অগ্রাধিকার সেট শিডিউলার (PSS) হল একটি QoS সচেতন সময়সূচী যা টাইম ডোমেন (TD) এবং
ফ্রিকোয়েন্সি ডোমেইন (FD) প্যাকেট শিডিউলিং অপারেশনকে একটি শিডিউলারে [GMonghal2008]। এটা
একটি নির্দিষ্ট টার্গেট বিট রেট (TBR) দ্বারা UE-এর মধ্যে ন্যায্যতা নিয়ন্ত্রণ করে।

TD শিডিউলার অংশে, PSS প্রথমে অ-খালি RLC বাফার সহ UE নির্বাচন করে এবং তারপরে তাদের ভাগ করে
TBR এর উপর ভিত্তি করে দুটি সেটে বিভক্ত:

· সেট 1: UE যার অতীত গড় থ্রুপুট টিবিআর থেকে ছোট; TD শিডিউলার গণনা করে
ব্লাইন্ড ইকুয়াল থ্রুপুট (বিইটি) স্টাইলে তাদের অগ্রাধিকার মেট্রিক:

· সেট 2: UE যার অতীত গড় থ্রুপুট টিবিআর থেকে বড় (বা সমান); টিডি সময়সূচী
সমানুপাতিক মেলা (PF) শৈলীতে তাদের অগ্রাধিকার মেট্রিক গণনা করে:

সেট 1-এর অন্তর্গত UE-গুলি সেট 2-এর তুলনায় বেশি অগ্রাধিকার পায়। তারপর PSS নির্বাচন করবে
N_{mux} UE দুটি সেটে সর্বোচ্চ মেট্রিক সহ এবং সেই UEগুলিকে FD শিডিউলারে ফরোয়ার্ড করুন৷ পিএসএস-এ,
FD সময়সূচী UE n-এ RBG k বরাদ্দ করে যা নির্বাচিত মেট্রিককে সর্বাধিক করে। দুটি পিএফ শিডিউলার
PF সময়সূচীতে ব্যবহৃত হয়:

· আনুপাতিক মেলা নির্ধারিত (PFsch)

· গড় থেকে হস্তক্ষেপের বাহক (CoIta)

যেখানে Tsch_{j}(t) ব্যবহারকারী j দ্বারা অনুভূত অতীতের থ্রুপুট কর্মক্ষমতা অনুরূপ,
পার্থক্য যে এটি আপডেট করা হয় শুধুমাত্র যখন i-th ব্যবহারকারীকে প্রকৃতপক্ষে পরিবেশন করা হয়। CoI [j,k] হল একটি
UE j-এর RBG k-তে SINR-এর অনুমান। PFsch এবং CoIta উভয়ই FD ডিকপলিং এর জন্য
TD শিডিউলার থেকে মেট্রিক। এছাড়াও, PSS FD শিডিউলার একটি ওজন মেট্রিক W[n] প্রদান করে
UE-র সংখ্যা কম হলে ন্যায্যতা নিয়ন্ত্রণে সাহায্য করার জন্য।

যেখানে T_{j}(t) হল ব্যবহারকারীর j দ্বারা অনুভূত অতীতের থ্রুপুট কর্মক্ষমতা। অতএব, অন
RBG k, FD সময়সূচী UE j নির্বাচন করে যা ফ্রিকোয়েন্সির গুণফলকে সর্বোচ্চ করে
ডোমেন মেট্রিক (Msch, MCoI) ওজন দ্বারা W[n]। এই কৌশল থ্রুপুট গ্যারান্টি দেবে
নিম্ন মানের UE TBR এর দিকে ঝোঁক।

Config::SetDefault ("ns3::PfFfMacScheduler::HarqEnabled", BooleanValue (false));

সময়সূচী আপলিংক CQI-এর ফিল্টারিং তাদের প্রকৃতি অনুযায়ী প্রয়োগ করে
UlCqiFilter attibut, বিস্তারিতভাবে:

· SRS_UL_CQI: শুধুমাত্র SRS ভিত্তিক CQI অভ্যন্তরীণ বৈশিষ্ট্যগুলিতে সংরক্ষণ করা হয়।

· PUSCH_UL_CQI: শুধুমাত্র PUSCH ভিত্তিক CQI অভ্যন্তরীণ বৈশিষ্ট্যগুলিতে সংরক্ষণ করা হয়।

· ALL_UL_CQI: সমস্ত CQI একই অভ্যন্তরীণ অ্যাটিবিউটে সংরক্ষণ করা হয় (অর্থাৎ, শেষ CQI
প্রাপ্ত তার প্রকৃতি থেকে স্বাধীনভাবে সংরক্ষণ করা হয়)।

চ্যানেল এবং QoS মধ্যে সচেতন নির্ধারণকারী
চ্যানেল এবং QoS Aware (CQA) শিডিউলার [Bbojovic2014] হল একটি LTE MAC ডাউনলিংক শিডিউলিং
অ্যালগরিদম যা হেড অফ লাইন (HOL) বিলম্ব, GBR প্যারামিটার এবং চ্যানেল বিবেচনা করে
বিভিন্ন সাবব্যান্ডের উপর গুণমান। CQA সময়সূচী যৌথ TD এবং FD সময়সূচীর উপর ভিত্তি করে।

TD-এ (প্রতিটি TTI-এ) CQA শিডিউলার ব্যবহারকারীদের অগ্রাধিকারের ভিত্তিতে গোষ্ঠীভুক্ত করে। উদ্দেশ্যে
গ্রুপিং হল FD সময়সূচী প্রয়োগ করার জন্য প্রথমে সর্বোচ্চ HOL সহ প্রবাহ বিবেচনা করা
বিলম্ব ব্যবহারকারী j=1,...,N এর জন্য গ্রুপিং মেট্রিক m_{td} নিম্নলিখিত উপায়ে সংজ্ঞায়িত করা হয়েছে:

যেখানে d_{hol}^{j}(t) হল j প্রবাহের HOL বিলম্বের বর্তমান মান এবং g হল একটি গ্রুপিং
প্যারামিটার যা গ্রুপগুলির গ্রানুলারিটি নির্ধারণ করে, অর্থাৎ প্রবাহের সংখ্যা
FD সময়সূচী পুনরাবৃত্তিতে বিবেচনা করা হবে।

TD পুনরাবৃত্তিতে নির্বাচিত প্রবাহের গোষ্ঠীগুলিকে FD সময়সূচীতে ফরোয়ার্ড করা হয়
সবগুলো RBG না হওয়া পর্যন্ত m_{td} মেট্রিকের সর্বোচ্চ মান দিয়ে প্রবাহ থেকে শুরু করে
সংশ্লিষ্ট টিটিআইতে নিয়োগ করা হয়েছে। FD-এ, প্রতিটি RBG k=1,...,K, CQA শিডিউলারের জন্য
ব্যবহারকারী j কে বর্তমান RBG বরাদ্দ করে যার FD মেট্রিকের সর্বোচ্চ মান রয়েছে যা আমরা করি
নিম্নলিখিত উপায়ে সংজ্ঞায়িত করুন:

যেখানে m_{GBR}^j(t) নিম্নরূপ গণনা করা হয়:

যেখানে GBR^j হল ফ্লো j, rie R j ( ) shps বাতিত থ্রুপুট এর EPS ধারক-এ নির্দিষ্ট করা বিট রেট
একটি চলমান গড় দিয়ে গণনা করা হয়, r^{j}(t) হল t সময়ে অর্জিত থ্রুপুট,
এবং lpha একটি সহগ যেমন 0 lpha ..sp m_{ca}^{(k,j)}(t) এর জন্য আমরা দুটি বিবেচনা করি
বিভিন্ন মেট্রিক্স: m_{pf}^{(k,j)}(t) এবং m_{ff}^{(k,j)}(t)। m_{pf} হল সমানুপাতিক
ন্যায্য মেট্রিক যা নিম্নরূপ সংজ্ঞায়িত করা হয়:

যেখানে R_e^{(k,j)}(t) হল RBG k এর উপর ব্যবহারকারী j এর আনুমানিক অর্জনযোগ্য থ্রুপুট
অ্যাডাপটিভ মড্যুলেশন এবং কোডিং (AMC) স্কিম দ্বারা গণনা করা হয় যা চ্যানেলটিকে ম্যাপ করে
মান নির্দেশক (CQI) বিট মধ্যে পরিবহন ব্লক আকার মান.

অন্য চ্যানেল সচেতনতা মেট্রিক যা আমরা বিবেচনা করি তা হল m_{ff} যা প্রস্তাবিত
[GMonghal2008] এবং এটি ব্যবহারকারীর জন্য RBG k এর উপর ফ্রিকোয়েন্সি নির্বাচনী ফেইডিং লাভের প্রতিনিধিত্ব করে
j এবং নিম্নলিখিত উপায়ে গণনা করা হয়:

যেখানে CQI^{(k,j)}(t) হল k-th RBG-এর জন্য ব্যবহারকারী j থেকে শেষ রিপোর্ট করা CQI মান।

ব্যবহারকারী এট্রিবিউট সেট করে m_{pf} বা m_{ff} ব্যবহার করা হবে কিনা তা নির্বাচন করতে পারেন
ns3::CqaFfMacScheduler::CqaMetric যথাক্রমে থেকে "CqaPf" or "CqaFf".

এলোমেলো প্রবেশ
এলটিই মডেলে কিছু সরলীকরণের উপর ভিত্তি করে র্যান্ডম অ্যাক্সেস পদ্ধতির একটি মডেল অন্তর্ভুক্ত রয়েছে
অনুমান, যা প্রতিটি বার্তা এবং সংকেতের জন্য নিম্নলিখিত বিশদভাবে বর্ণনা করা হয়েছে
চশমা [TS36321] এ বর্ণিত।

· এলোমেলো প্রবেশ (আরএ) প্রস্তাবনা: বাস্তব LTE সিস্টেমে এটি একটি Zadoff-Chu এর সাথে মিলে যায়
(ZC) ক্রম উপলব্ধ একাধিক ফরম্যাটের একটি ব্যবহার করে এবং PRACH স্লটে পাঠানো
যা নীতিগতভাবে PUSCH এর সাথে ওভারল্যাপ করতে পারে। PRACH কনফিগারেশন সূচক 14 হল
অনুমান করা হয়, অর্থাত্, প্রস্তাবনাগুলি যে কোনও সিস্টেম ফ্রেম নম্বর এবং সাবফ্রেম নম্বরে পাঠানো যেতে পারে।
RA প্রস্তাবনাটি LteControlMessage ক্লাস ব্যবহার করে মডেল করা হয়েছে, অর্থাৎ, একটি আদর্শ হিসাবে
বার্তা যা কোনো রেডিও সম্পদ ব্যবহার করে না। প্রস্তাবনার সংঘর্ষ
একই কক্ষে একাধিক UE দ্বারা সংক্রমণ একটি প্রোটোকল ব্যবহার করে মডেল করা হয়
হস্তক্ষেপ মডেল, অর্থাৎ, যখনই দুই বা ততোধিক অভিন্ন প্রস্তাবনা প্রেরণ করা হয়
একই টিটিআই-এ একই সেল, এই অভিন্ন প্রস্তাবনাগুলির একটিও প্রাপ্ত হবে না
eNB. এই সংঘর্ষ মডেল ব্যতীত, কোন ত্রুটি মডেল এর সাথে যুক্ত নয়
একটি RA প্রস্তাবনা গ্রহণ.

· এলোমেলো প্রবেশ প্রতিক্রিয়া (RAR): বাস্তব LTE সিস্টেমে, এটি একটি বিশেষ MAC PDU পাঠানো হয়
DL-SCH. যেহেতু MAC নিয়ন্ত্রণ উপাদানগুলি সিমুলেটরে সঠিকভাবে মডেল করা হয় না
(শুধুমাত্র RLC এবং উপরের PDU গুলি), RAR কে LteControlMessage হিসাবে মডেল করা হয়েছে যা করে
কোন রেডিও সম্পদ গ্রাস না. তবুও, RA পদ্ধতির সময়, LteEnbMac হবে
FF MAC ব্যবহার করে RAR এর জন্য সংস্থান বরাদ্দ করার জন্য শিডিউলারের কাছে অনুরোধ করুন
শিডিউলার আদিম SCHED_DL_RACH_INFO_REQ। অতএব, একটি বর্ধিত সময়সূচী
বাস্তবায়ন (এই মুহূর্তে উপলব্ধ নয়) এর জন্য রেডিও সংস্থান বরাদ্দ করতে পারে
RAR, এইভাবে ট্রান্সমিশনের জন্য রেডিও সম্পদের খরচ মডেলিং
আরএআর।

· বার্তা 3: বাস্তব LTE সিস্টেমে, এটি একটি RLC TM SDU যা নির্দিষ্ট সংস্থানগুলির মাধ্যমে পাঠানো হয়৷
RAR মধ্যে UL অনুদানে। সিমুলেটরে, এটি একটি বাস্তব RLC TM RLC হিসাবে মডেল করা হয়েছে
PDU যার UL সংস্থানগুলিকে কল করার সময় সময়সূচী দ্বারা বরাদ্দ করা হয়৷
SCHED_DL_RACH_INFO_REQ.

· বিতর্ক সমাধান (সিআর): বাস্তব এলটিই সিস্টেমে, মোকাবেলার জন্য সিআর ফেজ প্রয়োজন
ক্ষেত্রে যেখানে দুই বা ততোধিক UE একই TTI তে একই RA প্রস্তাবনা পাঠিয়েছে এবং eNB ছিল
সংঘর্ষ সত্ত্বেও এই প্রস্তাবনা সনাক্ত করতে সক্ষম। যেহেতু এই ঘটনা না
RA প্রস্তাবনা গ্রহণের জন্য ব্যবহৃত প্রোটোকল হস্তক্ষেপ মডেলের কারণে ঘটে,
CR ফেজ সিমুলেটরে মডেল করা হয় না, অর্থাৎ, CR MAC CE কখনই পাঠানো হয় না
eNB এবং UEs RAR গ্রহণ করার পরে RA কে সফল বলে মনে করে। হিসেবে
ফলস্বরূপ, CR MAC CE ট্রান্সমিশনের জন্য ব্যবহৃত রেডিও সংস্থানগুলি হল
মডেল করা হয় না

ব্যক্তিত্ব ক্রম নকশা of দ্য বিতর্ক ভিত্তিক ম্যাক এলোমেলো প্রবেশ কার্যপ্রণালী এবং ক্রম
নকশা of দ্য অ-বিবাদ-ভিত্তিক ম্যাক এলোমেলো প্রবেশ কার্যপ্রণালী ক্রম দেখায়
যথাক্রমে বিতর্ক-ভিত্তিক এবং অ-বিবাদ-ভিত্তিক MAC র্যান্ডম অ্যাক্সেসের চিত্র
পদ্ধতি, MAC এবং অন্যান্য সত্তার মধ্যে মিথস্ক্রিয়া হাইলাইট করে।
[ছবি] কন্টেন্ট-ভিত্তিক MAC র্যান্ডম অ্যাক্সেস পদ্ধতির সিকোয়েন্স ডায়াগ্রাম। UNINDENT
[ছবি] নন-কন্টেন্ট-ভিত্তিক MAC র্যান্ডম অ্যাক্সেসের সিকোয়েন্স ডায়াগ্রাম
পদ্ধতি.UNINDENT

RLC
সংক্ষিপ্ত বিবরণ
RLC সত্তাটি 3GPP টেকনিক্যাল স্পেসিফিকেশন [TS36322]-এ নির্দিষ্ট করা হয়েছে এবং এতে রয়েছে
তিনটি ভিন্ন ধরনের RLC: স্বচ্ছ মোড (TM), আনকনলেজ মোড (UM) এবং
স্বীকৃত মোড (AM)। সিমুলেটর এই সত্তাগুলির প্রতিটির জন্য একটি মডেল অন্তর্ভুক্ত করে

RLC সত্তাগুলি উপরের PDCP স্তর এবং MAC-তে RLC পরিষেবা ইন্টারফেস প্রদান করে
নিম্ন MAC স্তর পরিষেবা ইন্টারফেস. RLC সত্তা PDCP পরিষেবা ইন্টারফেস ব্যবহার করে
উপরের PDCP স্তর থেকে এবং নিম্ন MAC স্তর থেকে MAC পরিষেবা ইন্টারফেস।

ব্যক্তিত্ব বাস্তবায়ন মডেল of PDCP, RLC এবং ম্যাক সত্ত্বা এবং এসএপি দেখায়
RLC সত্তার বাস্তবায়ন মডেল এবং অন্যান্য সকল সত্তার সাথে এর সম্পর্ক
এবং প্রোটোকল স্ট্যাকের মধ্যে পরিষেবা।
[ছবি] PDCP, RLC এবং MAC সত্তা এবং SAPs এর বাস্তবায়ন মডেল। UNINDENT

সেবা ইন্টারফেস
RLC সেবা ইন্টারফেস
RLC পরিষেবা ইন্টারফেস দুটি ভাগে বিভক্ত:

· দ্য RlcSapProvider অংশটি RLC স্তর দ্বারা সরবরাহ করা হয় এবং উপরের PDCP স্তর দ্বারা ব্যবহৃত হয়
এবং

· দ্য RlcSapUser অংশটি উপরের PDCP স্তর দ্বারা সরবরাহ করা হয় এবং RLC স্তর দ্বারা ব্যবহৃত হয়।

UM এবং AM RLC সত্তা উভয়ই উপরের দিকে একই RLC পরিষেবা ইন্টারফেস প্রদান করে
PDCP স্তর।

RLC সেবা আদিম
নিম্নলিখিত তালিকাটি নির্দিষ্ট করে যে কোন পরিষেবা আদিম RLC পরিষেবা দ্বারা সরবরাহ করা হয়
ইন্টারফেস:

· RlcSapProvider::TransmitPdcpPdu

· PDCP সত্তা নিম্ন RLC সত্তায় PDCP PDU পাঠাতে এই আদিম ব্যবহার করে
ট্রান্সমিটার পিয়ার মধ্যে

· RlcSapUser::ReceivePdcpPdu

· RLC সত্তা উপরের PDCP সত্তায় একটি PDCP PDU পাঠাতে এই আদিম ব্যবহার করে
রিসিভার পিয়ার মধ্যে

ম্যাক সেবা ইন্টারফেস
MAC পরিষেবা ইন্টারফেস দুটি ভাগে বিভক্ত:

· দ্য MacSapProvider অংশটি MAC স্তর দ্বারা সরবরাহ করা হয় এবং উপরের RLC স্তর দ্বারা ব্যবহৃত হয়
এবং

· দ্য MacSapUser অংশটি উপরের RLC স্তর দ্বারা সরবরাহ করা হয় এবং MAC স্তর দ্বারা ব্যবহৃত হয়।

ম্যাক সেবা আদিম
নিম্নলিখিত তালিকাটি নির্দিষ্ট করে যে কোন পরিষেবা আদিম MAC পরিষেবা দ্বারা সরবরাহ করা হয়
ইন্টারফেস:

· MacSapProvider::TransmitPdu

· RLC সত্তা নিম্ন MAC সত্তায় একটি RLC PDU পাঠাতে এই আদিম ব্যবহার করে
ট্রান্সমিটার পিয়ার

· MacSapProvider::ReportBufferStatus

· RLC সত্তা এই আদিম ব্যবহার করে MAC সত্তাকে মুলতুবি থাকা আকারের রিপোর্ট করতে
ট্রান্সমিটার পিয়ার মধ্যে বাফার

· MacSapUser::NotifyTxOpportunity

· MAC সত্তা এই আদিম ব্যবহার করে RLC সত্তাকে একটি ট্রান্সমিশন জানানোর জন্য
সুযোগ

· MacSapUser::ReceivePdu

· MAC সত্তা উপরের RLC সত্তায় একটি RLC PDU পাঠাতে এই আদিম ব্যবহার করে
রিসিভার পিয়ার মধ্যে

AM RLC
অ্যাকনলেজ মোড (এএম) RLC সত্তায় ডেটা স্থানান্তরের প্রক্রিয়াকরণ ব্যাখ্যা করা হয়েছে
[TS5.1.3] এর 36322 ধারায়। এই বিভাগে আমরা কিছু বিবরণ বর্ণনা
RLC সত্তার বাস্তবায়ন।

বাফার উন্নত দ্য প্রেরণ করা অপারেশন
AM RLC সত্তার আমাদের বাস্তবায়ন ট্রান্সমিট অপারেশনের জন্য 3টি বাফার বজায় রাখে:

· ট্রান্সমিশন বাফার: এটি হল RLC SDU সারি৷ যখন AM RLC সত্তা একটি SDU পায়
উপরের PDCP সত্তা থেকে আদিম ট্রান্সমিটপিডিসিপিপিডিউ পরিষেবাতে, এটি সারিবদ্ধ করে
ট্রান্সমিশন বাফারে। আমরা আরএলসি বাফার আকারের একটি সীমা রেখেছি এবং কেবল নীরবে
বাফার পূর্ণ হলে SDUs ড্রপ করুন।

· প্রেরিত PDU গুলি বাফার: এটি প্রেরিত RLC PDU এর সারি যার জন্য একটি
ACK/NACK এখনও প্রাপ্ত হয়নি। যখন AM RLC সত্তা MAC-তে একটি PDU পাঠায়
সত্তা, এটি ট্রান্সমিটেড PDU-এর বাফারে ট্রান্সমিটেড PDU-এর একটি কপিও রাখে।

· পুনঃপ্রচার বাফার: এটি RLC PDU এর সারি যার জন্য বিবেচিত হয়৷
retransmission (অর্থাৎ, তাদের NACK করা হয়েছে)। AM RLC সত্তা এই PDU কে এতে নিয়ে যায়
রিট্রান্সমিশন বাফার, যখন এটি ট্রান্সমিটেড বাফার থেকে একটি PDU রিট্রান্সমিট করে।

প্রেরণ করা অপারেশন in ডাউনলিঙ্ক
নিম্নলিখিত ক্রম চিত্রটি বিভিন্ন সত্তার মধ্যে মিথস্ক্রিয়া দেখায় (RRC,
ডাউনলিঙ্কে eNB-এর PDCP, AM RLC, MAC এবং MAC শিডিউলার) ডেটা সম্পাদন করতে
যোগাযোগ।

ব্যক্তিত্ব ক্রম নকশা of উপাত্ত PDU সংক্রমণ in ডাউনলিঙ্ক উপরের স্তরগুলি কীভাবে দেখায়
ডেটা PDU পাঠান এবং কীভাবে ডেটা প্রবাহ প্রক্রিয়া করা হয় এর বিভিন্ন সত্তা/পরিষেবা
LTE প্রোটোকল স্ট্যাক।
[ছবি] ডাউনলিংকে ডেটা পিডিইউ ট্রান্সমিশনের সিকোয়েন্স ডায়াগ্রাম। UNINDENT

PDCP সত্তা কল করে ট্রান্সমিট_PDCP_PDU সেবা আদিম একটি ডেটা পাঠানোর জন্য
পিডিইউ। AM RLC সত্তা AM ডেটা অনুসারে এই পরিষেবাটিকে আদিম প্রক্রিয়া করে
[TS5.1.3] এর 36322 ধারায় সংজ্ঞায়িত স্থানান্তর পদ্ধতি।

যখন ট্রান্সমিট_PDCP_PDU পরিষেবা আদিম বলা হয়, AM RLC সত্তা সম্পাদন করে
নিম্নলিখিত অপারেশন:

· ট্রান্সমিশন বাফারে ডেটা এসডিইউ রাখুন।

· বাফারের আকার গণনা করুন (বাফারের আকার কীভাবে গণনা করা হবে
পরে ব্যাখ্যা করা হয়েছে)।

· কল করুন প্রতিবেদন_বাফার_স্থিতি eNB MAC সত্তার আদিম পরিষেবা যাতে
AM RLC সত্তার বাফারের আকার eNB MAC সত্তাকে অবহিত করুন। এরপর
eNB MAC সত্তা MAC শিডিউলার ব্যবহার করে বাফার স্থিতি আপডেট করে
FF MAC সময়সূচী API এর আদিম SchedDlRlcBufferReq পরিষেবা।

পরে, যখন MAC সময়সূচী সিদ্ধান্ত নেয় যে কিছু ডেটা পাঠানো যেতে পারে, MAC সত্তা
এটি RLC সত্তাকে অবহিত করে, অর্থাৎ এটি কল করে বিজ্ঞপ্তি_Tx_সুযোগ সেবা আদিম,
তারপর AM RLC সত্তা নিম্নলিখিত কাজ করে:

SDUগুলিকে ভাগ করে এবং/অথবা সংযুক্ত করে একটি একক ডেটা PDU তৈরি করুন
ট্রান্সমিশন বাফার।

· ট্রান্সমিশন বাফার থেকে ডেটা PDU কে ট্রান্সমিটেড PDUs বাফারে নিয়ে যান।

· [TS5.1.3.1.1] এর বিভাগ 36322 অনুযায়ী স্টেট ভেরিয়েবল আপডেট করুন।

· কল করুন ট্রান্সমিট_পিডিইউ ম্যাক সত্তায় ডেটা PDU পাঠানোর জন্য আদিম।

পুনঃপ্রচার in ডাউনলিঙ্ক
চিত্রের ক্রম চিত্র ক্রম নকশা of উপাত্ত PDU rebroadcast in ডাউনলিঙ্ক
এর বিভিন্ন সত্তার (AM RLC, MAC এবং MAC শিডিউলার) মধ্যে মিথস্ক্রিয়া দেখায়
ডাউনলিংকে eNB যখন ডেটা PDU গুলিকে AM RLC সত্তা দ্বারা পুনরায় প্রেরণ করতে হবে।
[ছবি] ডাউনলিংকে ডেটা পিডিইউ রিট্রান্সমিশনের সিকোয়েন্স ডায়াগ্রাম। UNINDENT

ট্রান্সমিটিং AM RLC সত্তা পিয়ার AM RLC সত্তা থেকে স্ট্যাটাস PDU পেতে পারে।
স্ট্যাটাস পিডিইউগুলি [TS5.3.2] এর বিভাগ 36322 এবং প্রক্রিয়াকরণ অনুযায়ী পাঠানো হয়
[TS5.2.1] এর 36322 ধারা অনুযায়ী অভ্যর্থনা করা হয়।

যখন প্রেরিত PDUs বাফার থেকে একটি ডেটা PDUs পুনরায় প্রেরণ করা হয়, তখন এটিকেও সরানো হয়
রিট্রান্সমিশন বাফার।

প্রেরণ করা অপারেশন in আপলিঙ্ক
চিত্রের ক্রম চিত্র ক্রম নকশা of উপাত্ত PDU সংক্রমণ in আপলিঙ্ক শো
UE (RRC, PDCP, RLC এবং MAC) এর বিভিন্ন সত্তার মধ্যে মিথস্ক্রিয়া এবং
eNB (MAC এবং Scheduler) আপলিঙ্কে যখন ডেটা PDUগুলি উপরের স্তরগুলি দ্বারা পাঠানো হয়।
[image] uplink.UNINDENT-এ ডেটা PDU ট্রান্সমিশনের সিকোয়েন্স ডায়াগ্রাম

এটি ডাউনলিংকের সিকোয়েন্স ডায়াগ্রামের অনুরূপ; প্রধান পার্থক্য এই যে
UE MAC থেকে ENB-তে MAC শিডিউলারের কাছে Report_Buffer_Status পাঠানো হয়
নিয়ন্ত্রণ চ্যানেল ব্যবহার করে বাতাসের উপর।

পুনঃপ্রচার in আপলিঙ্ক
চিত্রের ক্রম চিত্র ক্রম নকশা of উপাত্ত PDU rebroadcast in আপলিঙ্ক শো
UE (AM RLC এবং MAC) এবং eNB-এর বিভিন্ন সত্তার মধ্যে মিথস্ক্রিয়া
(MAC) আপলিঙ্কে যখন ডেটা PDU গুলিকে AM RLC সত্তা দ্বারা পুনরায় প্রেরণ করতে হবে।
[ছবি] আপলিঙ্কে ডেটা পিডিইউ রিট্রান্সমিশনের সিকোয়েন্স ডায়াগ্রাম। UNINDENT

হিসাব of দ্য বাফার আয়তন
ট্রান্সমিশন বাফারে RLC SDUs রয়েছে। একটি RLC PDU হল এক বা একাধিক SDU সেগমেন্ট এবং একটি
RLC হেডার। একটি RLC PDU-এর RLC হেডারের আকার SDU সংখ্যার উপর নির্ভর করে
PDU তে থাকা অংশগুলি।

3GPP স্ট্যান্ডার্ড ([TS6.1.3.1] এর বিভাগ 36321) স্পষ্টভাবে বলে যে, আপলিংকের জন্য,
RLC এবং MAC শিরোনামগুলিকে বাফার আকারে বিবেচনা করা হয় না যার অংশ হিসাবে রিপোর্ট করা হবে৷
বাফার স্ট্যাটাস রিপোর্ট। ডাউনলিংকের জন্য, আচরণ নির্দিষ্ট করা নেই। না
[FFAPI] এটা কিভাবে করতে হবে তা উল্লেখ করে। আমাদের RLC মডেলের হিসাব ধরে নিয়ে কাজ করে
ডাউনলিংকের বাফার সাইজ আপলিংকের মতোই করা হয়েছে, অর্থাৎ বিবেচনা না করে
RLC এবং MAC হেডারের আকার।

আমরা লক্ষ করি যে এই পছন্দটি MAC শিডিউলারের সাথে ইন্টারঅপারেশনকে প্রভাবিত করে, যেহেতু, মধ্যে
সাড়া বিজ্ঞপ্তি_Tx_সুযোগ পরিষেবা আদিম, আরএলসি একটি তৈরি করবে বলে আশা করা হচ্ছে
RLC ওভারহেড সহ MAC দ্বারা অনুরোধ করা আকারের চেয়ে বেশি PDU নয়। অতএব, অপ্রয়োজনীয়
ফ্র্যাগমেন্টেশন ঘটতে পারে যদি (উদাহরণস্বরূপ) MAC ঠিক এর সমান একটি ট্রান্সমিশনকে অবহিত করে
RLC দ্বারা পূর্বে রিপোর্ট করা বাফার আকার। আমরা অনুমান করি যে এটি নির্ধারণকারীর উপর ছেড়ে দেওয়া হয়েছে
ট্রান্সমিশনের আকার নির্বাচনের জন্য স্মার্ট কৌশল বাস্তবায়ন করা
সুযোগ, শেষ পর্যন্ত অপ্রয়োজনীয় খণ্ডনের অদক্ষতা এড়াতে।

সংবিধান এবং সেগমেন্টেশন
AM RLC সত্তা প্রতিটি ট্রান্সমিশনের জন্য ঠিক একটি RLC PDU তৈরি করে এবং পাঠায়
ট্রান্সমিশন সুযোগ দ্বারা রিপোর্ট করা আকারের চেয়ে ছোট হলেও সুযোগ।
সুতরাং উদাহরণস্বরূপ, যদি একটি স্ট্যাটাস পিডিইউ পাঠাতে হয়, তবে শুধুমাত্র এই পিডিইউ পাঠানো হবে
সংক্রমণ সুযোগ।

AM RLC সত্তার SDU সারির জন্য বিভাজন এবং সংমিশ্রণ একই অনুসরণ করে
UM RLC সত্তার একই পদ্ধতির মত দর্শন কিন্তু নতুন স্টেট ভেরিয়েবল আছে
(দেখুন [TS36322] বিভাগ 7.1) শুধুমাত্র AM RLC সত্তায় উপস্থিত।

এটি উল্লেখ্য যে, 3GPP স্পেক্স অনুযায়ী, এর জন্য কোন সংমিশ্রণ নেই
রিট্রান্সমিশন বাফার।

পুনরায় বিভাজন
AM RLC সত্তার বর্তমান মডেল এর পুনরায় বিভাজন সমর্থন করে না
রিট্রান্সমিশন বাফার। বরং, AM RLC সত্তা শুধুমাত্র যথেষ্ট বড় পাওয়ার জন্য অপেক্ষা করে
সংক্রমণ সুযোগ।

অসমর্থিত বৈশিষ্ট্য
আমরা [TS36322] এর নিম্নলিখিত পদ্ধতিগুলিকে সমর্থন করি না:

· "RLC SDU এর সফল বিতরণের একটি ইঙ্গিত পাঠান" (বিভাগ 5.1.3.1.1 দেখুন)

· "উপরের স্তরগুলিতে নির্দেশ করুন যে সর্বাধিক পুনঃপ্রচারে পৌঁছেছে" (বিভাগ দেখুন
5.2.1)

· "SDU বাতিল পদ্ধতি" (বিভাগ 5.3 দেখুন)

· "পুনঃপ্রতিষ্ঠার পদ্ধতি" (বিভাগ 5.4 দেখুন)

আমরা AM RLC সত্তার জন্য RLC SAP-এর অতিরিক্ত আদিম কোনো সমর্থন করি না। ভিতরে
বিশেষ:

PDCP দ্বারা সূচিত কোনো SDU বাতিল করা হয়নি

পিডিসিপি সত্তায় AM RLC সত্তার দ্বারা সফল/ব্যর্থ ডেলিভারির কোনো বিজ্ঞপ্তি নেই

UM RLC
এই বিভাগে আমরা Unacknowledge Mode (UM) RLC সত্তার বাস্তবায়ন বর্ণনা করি।

প্রেরণ করা অপারেশন in ডাউনলিঙ্ক
UM RLC-এর ট্রান্সমিট ক্রিয়াকলাপগুলি পূর্বের AM RLC-এর মতোই
বিভাগে বর্ণিত প্রেরণ করা অপারেশন in ডাউনলিঙ্ক, পার্থক্য সঙ্গে যে, নিম্নলিখিত
[TS36322] এর স্পেসিফিকেশন, রিট্রান্সমিশন করা হয় না এবং কোন স্ট্যাটাস নেই
PDUs

প্রেরণ করা অপারেশন in আপলিঙ্ক
আপলিংকের ট্রান্সমিট অপারেশনগুলি ডাউনলিংকের মতো, প্রধান সহ
পার্থক্য যে Report_Buffer_Status UE MAC থেকে MAC শিডিউলারে পাঠানো হয়
নিয়ন্ত্রণ চ্যানেল ব্যবহার করে বায়ু উপর eNB.

হিসাব of দ্য বাফার আয়তন
UM RLC-এর জন্য বাফার আকারের গণনা একই পদ্ধতি ব্যবহার করে করা হয়
AM RLC, অনুগ্রহ করে বিভাগটি পড়ুন হিসাব of দ্য বাফার আয়তন সংশ্লিষ্ট জন্য
বর্ণনা।

TM RLC
এই বিভাগে আমরা স্বচ্ছ মোড (TM) RLC সত্তার বাস্তবায়ন বর্ণনা করি।

প্রেরণ করা অপারেশন in ডাউনলিঙ্ক
সিমুলেটরে, TM RLC এখনও উপরের স্তরগুলিতে একই পরিষেবা ইন্টারফেস সরবরাহ করে
PDCP স্তরে AM এবং UM RLC সত্তা দ্বারা সরবরাহ করা হয়েছে; বাস্তবে, এই ইন্টারফেস হয়
RLC SDU-এর সংক্রমণের জন্য একটি RRC সত্তা (কোন PDCP সত্তা নয়) দ্বারা ব্যবহৃত। এই পছন্দ হয়
টিএম আরএলসি দ্বারা উপরের স্তরগুলিতে প্রদত্ত পরিষেবাগুলি দ্বারা অনুপ্রাণিত,
[TS36322] অনুসারে, UM এবং AM RLC সত্তার দ্বারা প্রদত্ত একটি উপসেট
PDCP স্তর; তাই, আমরা সরলতার জন্য একই ইন্টারফেস পুনরায় ব্যবহার করেছি।

ডাউনলিংকের ট্রান্সমিট অপারেশনগুলি নিম্নরূপ সঞ্চালিত হয়। যখন
ট্রান্সমিট_PDCP_PDU সেবা আদিম উপরের স্তরগুলি দ্বারা বলা হয়, টিএম আরএলসি করে
নিম্নলিখিত:

· ট্রান্সমিশন বাফারে SDU রাখুন

· ট্রান্সমিশন বাফারের আকার গণনা করুন

· কল প্রতিবেদন_বাফার_স্থিতি eNB MAC সত্তার আদিম পরিষেবা

পরে, যখন MAC শিডিউলার সিদ্ধান্ত নেয় যে কিছু ডেটা যৌক্তিক দ্বারা পাঠানো যেতে পারে
যে চ্যানেলে TM RLC সত্তার অন্তর্গত, MAC সত্তা এটি TM RLC-কে অবহিত করে
কল করে সত্তা বিজ্ঞপ্তি_Tx_সুযোগ সেবা আদিম এই অভ্যর্থনা উপর
আদিম, TM RLC সত্তা নিম্নলিখিতগুলি করে:

· যদি TX সুযোগের একটি আকার থাকে যা আকারের চেয়ে বড় বা সমান
ট্রান্সমিশন বাফারে হেড-অফ-লাইন SDU

· ট্রান্সমিশন বাফার থেকে হেড-অফ-লাইন SDU কে ডিকিউ করুন

একটি RLC PDU তৈরি করুন যাতে সম্পূর্ণরূপে সেই SDU থাকে, কোনো RLC হেডার ছাড়াই

· কল করুন ট্রান্সমিট_পিডিইউ ম্যাক সত্তায় RLC PDU পাঠানোর জন্য আদিম।

প্রেরণ করা অপারেশন in আপলিঙ্ক
আপলিংকের ট্রান্সমিট অপারেশনগুলি ডাউনলিংকের মতো, প্রধান সহ
পার্থক্য যে একটি ট্রান্সমিশন সুযোগ UL এর নিয়োগ থেকেও উঠতে পারে
সুস্পষ্ট বাফার স্ট্যাটাস রিপোর্ট ছাড়াই র্যান্ডম অ্যাক্সেস পদ্ধতির অংশ হিসেবে গ্রান্ট
TM RLC সত্তা দ্বারা জারি করা হয়েছে।

হিসাব of দ্য বাফার আয়তন
স্পেসিফিকেশন [TS36322] অনুযায়ী, TM RLC PDU-তে কোনো RLC হেডার যোগ করে না
প্রেরণ করা হচ্ছে। এই কারণে, MAC স্তর রিপোর্ট করা বাফার আকার হয়
এইভাবে ট্রান্সমিশন বাফারে সমস্ত প্যাকেটের আকার যোগ করে গণনা করা হয়
সঠিক বাফার আকার MAC-কে অবহিত করা।

SM RLC
AM, UM এবং TM বাস্তবায়নের পাশাপাশি যা 3GPP-এর পরে মডেল করা হয়েছে৷
স্পেসিফিকেশন, একটি সরলীকৃত RLC মডেল প্রদান করা হয়, যাকে বলা হয় স্যাচুরেশন মোড (SM)
আরএলসি। এই RLC মডেল উপরের কোন স্তর (যেমন PDCP) থেকে PDU গ্রহণ করে না; বরং,
SM RLC এর বিজ্ঞপ্তির প্রতিক্রিয়া হিসাবে RLC PDUs তৈরির যত্ন নেয়
MAC দ্বারা বিজ্ঞাপিত সংক্রমণ সুযোগ. অন্য কথায়, এসএম আরএলসি সিমুলেট করে
স্যাচুরেশন অবস্থা, অর্থাৎ, এটা ধরে নেয় যে RLC বাফার সবসময় পূর্ণ থাকে এবং পারে
যখনই সময়সূচী দ্বারা অবহিত করা হয় তখনই একটি নতুন PDU তৈরি করুন।

এসএম আরএলসি সরলীকৃত সিমুলেশন পরিস্থিতিতে ব্যবহৃত হয় যেখানে শুধুমাত্র এলটিই রেডিও মডেল
ব্যবহার করা হয়, EPC ছাড়া এবং তাই কোনো IP নেটওয়ার্কিং সমর্থন ছাড়াই। আমরা লিখে রাখলাম,
যদিও SM RLC একটি অবাস্তব ট্র্যাফিক মডেল, এটি এখনও সঠিক করার অনুমতি দেয়
বিভিন্ন (নন রিয়েল-টাইম) QoS-এর অন্তর্গত একাধিক প্রবাহ সহ পরিস্থিতির সিমুলেশন
ক্লাস, বিভিন্ন সময়সূচী দ্বারা প্রাপ্ত QoS কর্মক্ষমতা পরীক্ষা করার জন্য। এটা পারে
এটি করা হবে যেহেতু এটির উপর ভিত্তি করে ট্রান্সমিশন সংস্থান নির্ধারণ করা সময়সূচীর কাজ
প্রতিটি রেডিও বাহকের বৈশিষ্ট্য (যেমন, গ্যারান্টিড বিট রেট), যা নির্দিষ্ট করা হয়েছে
সিমুলেশন প্রোগ্রামের মধ্যে প্রতিটি বহনকারীর সংজ্ঞা অনুসারে।

রিয়েল-টাইম QoS ট্র্যাফিকের সাথে কাজ করার জন্য ডিজাইন করা শিডিউলারের ক্ষেত্রে যার বিলম্বের সীমাবদ্ধতা রয়েছে,
SM RLC সম্ভবত একটি উপযুক্ত পছন্দ নয়। এর কারণ প্রকৃত অনুপস্থিতি
RLC SDUs (বাফার স্ট্যাটাস রিপোর্টের কৃত্রিম প্রজন্ম দ্বারা প্রতিস্থাপিত) এটি করে না
শিডিউলারকে অর্থপূর্ণ হেড-অফ-লাইন-বিলম্বের তথ্য প্রদান করা সম্ভব, যা হল
প্রায়ই রিয়েল-টাইমের জন্য সময়সূচী নীতি বাস্তবায়নের জন্য পছন্দের মেট্রিক
ট্রাফিক প্রবাহ এই ধরনের শিডিউলারের সিমুলেশন এবং পরীক্ষার জন্য, এটি ব্যবহার করার পরামর্শ দেওয়া হয়
এর পরিবর্তে হয় UM বা AM RLC মডেল।

পিডিসিপি
পিডিসিপি মডেল সংক্ষিপ্ত বিবরণ
PDCP সত্তার স্পেসিফিকেশনের জন্য রেফারেন্স ডকুমেন্ট হল [TS36323]। শ্রদ্ধার সাথে
এই স্পেসিফিকেশনে, সিমুলেটরে বাস্তবায়িত PDCP মডেল শুধুমাত্র সমর্থন করে
নিম্নলিখিত বৈশিষ্ট্য:

· ডেটা স্থানান্তর (ব্যবহারকারী সমতল বা নিয়ন্ত্রণ সমতল);

· PDCP SN এর রক্ষণাবেক্ষণ;

· SN স্থিতি স্থানান্তর (হস্তান্তরের সময় ব্যবহারের জন্য);

নিম্নলিখিত বৈশিষ্ট্যগুলি বর্তমানে সমর্থিত নয়:

· ROHC প্রোটোকল ব্যবহার করে আইপি ডেটা প্রবাহের হেডার কম্প্রেশন এবং ডিকম্প্রেশন;

· নিম্ন স্তরের পুনঃপ্রতিষ্ঠার সময় উপরের স্তরের PDU গুলির মধ্যে-ক্রমিক বিতরণ;

নিম্ন স্তরের SDU-এর সদৃশ নির্মূল নিম্ন স্তরের পুনঃপ্রতিষ্ঠা
RLC AM এ ম্যাপ করা রেডিও বাহক;

· ব্যবহারকারীর সমতল ডেটা এবং নিয়ন্ত্রণ সমতল ডেটার সাইফারিং এবং পাঠোদ্ধার;

· নিয়ন্ত্রণ সমতল ডেটার অখণ্ডতা সুরক্ষা এবং অখণ্ডতা যাচাই;

· টাইমার ভিত্তিক বাতিল;

· ডুপ্লিকেট বাতিল করা।

পিডিসিপি সেবা ইন্টারফেস
PDCP পরিষেবা ইন্টারফেস দুটি ভাগে বিভক্ত:

· দ্য PdcpSap প্রদানকারী অংশটি PDCP স্তর দ্বারা সরবরাহ করা হয় এবং উপরের স্তর দ্বারা ব্যবহৃত হয়
এবং

· দ্য PdcpSapUser অংশটি উপরের স্তর দ্বারা সরবরাহ করা হয় এবং PDCP স্তর দ্বারা ব্যবহৃত হয়।

পিডিসিপি সেবা আদিম
নিম্নলিখিত তালিকাটি নির্দিষ্ট করে যে কোন পরিষেবা আদিম PDCP পরিষেবা প্রদান করে
ইন্টারফেস:

· PdcpSapProvider::TransmitPdcpSdu

· RRC সত্তা নিম্ন PDCP সত্তায় একটি RRC PDU পাঠাতে এই আদিম ব্যবহার করে
ট্রান্সমিটার পিয়ার মধ্যে

· PdcpSapUser::ReceivePdcpSdu

· PDCP সত্তা এই আদিম ব্যবহার করে একটি RRC PDU উপরের RRC সত্তায় পাঠাতে
রিসিভার পিয়ার মধ্যে

আর সি
বৈশিষ্ট্য
সিমুলেটরে বাস্তবায়িত RRC মডেল নিম্নলিখিত কার্যকারিতা প্রদান করে:

· প্রজন্ম (eNB-এ) এবং সিস্টেম তথ্যের ব্যাখ্যা (UE-তে)
বিশেষ করে মাস্টার ইনফরমেশন ব্লক এবং এই লেখার সময় শুধুমাত্র সিস্টেম
তথ্য ব্লক টাইপ 1 এবং 2)

প্রাথমিক কোষ নির্বাচন

· RRC সংযোগ স্থাপন পদ্ধতি

· RRC পুনর্বিন্যাস পদ্ধতি, নিম্নলিখিত ব্যবহারের ক্ষেত্রে সমর্থন করে: + পুনর্বিন্যাস
SRS কনফিগারেশন সূচকের + PHY TX মোডের পুনর্বিন্যাস (MIMO) +
UE পরিমাপের পুনরায় কনফিগারেশন + ডেটা রেডিও বাহক সেটআপ + হস্তান্তর

· RRC সংযোগ পুনঃপ্রতিষ্ঠা, নিম্নলিখিত ব্যবহারের ক্ষেত্রে সমর্থন করে: + হস্তান্তর

স্থাপত্য
RRC মডেলটি নিম্নলিখিত উপাদানগুলিতে বিভক্ত:

· RRC সত্তা LteUeRrc এবং LteEnbrRrc, যা রাষ্ট্রীয় মেশিন বাস্তবায়ন
UE এবং eNB-তে যথাক্রমে RRC সত্তা;

· RRC SAPs LteUeRrcSapProvider, LteUeRrcSapUser, LteEnbrRrcSapProvider,
LteEnbrRrcSapUser, যা RRC সংস্থাগুলিকে RRC বার্তা পাঠাতে এবং গ্রহণ করতে দেয় এবং
তথ্য উপাদান;

· RRC প্রোটোকল ক্লাস LteUeRrcProtocolIdeal, LteEnbrRrcProtocolIdeal,
LteUeRrcProtocolReal, LteEnbrRrcProtocolReal, যা দুটি ভিন্ন মডেল বাস্তবায়ন করে
RRC বার্তা প্রেরণ।

উপরন্তু, RRC উপাদানগুলি বাকিদের সাথে যোগাযোগ করার জন্য অন্যান্য SAPs ব্যবহার করে
প্রোটোকল স্ট্যাকের. ব্যবহার করা হয় যে সমস্ত SAP এর একটি উপস্থাপনা প্রদান করা হয়
পরিসংখ্যান এলটিই রেডিও প্রোটোকল গাদা স্থাপত্য উন্নত দ্য UE on দ্য উপাত্ত সমতল, এলটিই রেডিও
প্রোটোকল গাদা স্থাপত্য উন্নত দ্য UE on দ্য নিয়ন্ত্রণ সমতল, এলটিই রেডিও প্রোটোকল গাদা
স্থাপত্য উন্নত দ্য eNB on দ্য উপাত্ত সমতল এবং এলটিই রেডিও প্রোটোকল গাদা স্থাপত্য উন্নত
দ্য eNB on দ্য নিয়ন্ত্রণ সমতল.

UE আর সি রাষ্ট্র মেশিন
চিত্রে UE আর সি রাষ্ট্র মেশিন আমরা RRC UE-তে বাস্তবায়িত রাষ্ট্রীয় যন্ত্রের প্রতিনিধিত্ব করি
সত্তা।
[ছবি] UE RRC স্টেট মেশিন।UNINDENT

উল্লেখ্য যে, অধিকাংশ রাজ্যই ক্ষণস্থায়ী, অর্থাৎ একবার UE-তে চলে গেলে
CONNECTED রাজ্যগুলির মধ্যে এটি কখনই IDLE রাজ্যগুলির কোনওটিতে ফিরে যাবে না৷ এই পছন্দ
নিম্নলিখিত কারণে করা হয়:

· যেমন বিভাগে আলোচনা করা হয়েছে নকশা নির্ণায়ক, LTE-EPC সিমুলেশনের ফোকাস
মডেল কানেক্টেড মোডে আছে

· রেডিও লিঙ্ক ব্যর্থতা বর্তমানে মডেল করা হয় না, যেমন বিভাগে আলোচনা করা হয়েছে রেডিও লিংক
ব্যর্থতা, তাই রেডিও লিঙ্ক ব্যর্থতার কারণে একটি UE নিষ্ক্রিয় হতে পারে না

· RRC সংযোগ রিলিজ বর্তমানে EPC বা NAS দ্বারা ট্রিগার করা হয় না

তবুও, আমরা সুস্পষ্টভাবে IDLE রাজ্যের মডেল বেছে নিয়েছি, কারণ:

হস্তান্তরের জন্য একটি বাস্তবসম্মত UE RRC কনফিগারেশন প্রয়োজন, যা একটি প্রয়োজনীয় বৈশিষ্ট্য,
এবং ক্লিনার বাস্তবায়নের জন্য একই UE RRC ব্যবহার করা বোধগম্য
প্রাথমিক সংযোগ স্থাপনের জন্যও কনফিগারেশন

· এটি ভবিষ্যতে নিষ্ক্রিয় মোড সেল নির্বাচন বাস্তবায়ন করা সহজ করে তোলে, যা একটি
অত্যন্ত পছন্দসই বৈশিষ্ট্য

ENB আর সি রাষ্ট্র মেশিন
eNB RRC কক্ষের সাথে সংযুক্ত প্রতিটি UE-এর অবস্থা বজায় রাখে। একটি হতে
বাস্তবায়নের দৃষ্টিকোণ থেকে, প্রতিটি UE-এর অবস্থা একটি উদাহরণের মধ্যে রয়েছে
UeManager ক্লাস। রাষ্ট্রীয় যন্ত্রটি চিত্রে উপস্থাপন করা হয়েছে ENB আর সি রাষ্ট্র মেশিন উন্নত প্রতি
UE.
[ছবি] প্রতিটি UE.UNINDENT-এর জন্য ENB RRC স্টেট মেশিন

প্রাথমিক কোষ নির্বাচন
প্রাথমিক সেল নির্বাচন হল একটি IDLE মোড পদ্ধতি, UE দ্বারা সঞ্চালিত হয় যখন এটি এখনও হয়নি
ক্যাম্প করা বা একটি eNodeB এর সাথে সংযুক্ত। পদ্ধতির উদ্দেশ্য হল একটি উপযুক্ত ঘর খুঁজে বের করা
এবং সেলুলার নেটওয়ার্কে অ্যাক্সেস পেতে এটি সংযুক্ত করুন।

এটি সাধারণত সিমুলেশনের শুরুতে করা হয়, যেমন চিত্রে দেখানো হয়েছে নমুনা রান of
প্রারম্ভিক কোষ নির্বাচন in UE এবং সময়জ্ঞান of সংশ্লিষ্ট ঘটনাবলী নিচে. উপর সময় চিত্র
বাম দিকটি সেই ক্ষেত্রে চিত্রিত করছে যেখানে প্রাথমিক সেল নির্বাচন প্রথম চেষ্টায় সফল হয়,
ডানদিকের চিত্রটি সেই ক্ষেত্রে যেখানে এটি প্রথম চেষ্টায় ব্যর্থ হয় এবং
দ্বিতীয় চেষ্টায় সফল। সময়টি বাস্তব RRC প্রোটোকল মডেলের ব্যবহার অনুমান করে (দেখুন আর সি
প্রোটোকল মডেল) এবং কোন ট্রান্সমিশন ত্রুটি নেই।
[ছবি] UE-তে প্রাথমিক সেল নির্বাচনের নমুনা রান এবং সম্পর্কিত সময়
ঘটনা। UNINDENT

কার্যকারিতা 3GPP IDLE মোড স্পেসিফিকেশনের উপর ভিত্তি করে, যেমন [TS36300],
[TS36304], এবং [TS36331]। যাইহোক, IDLE মোডের একটি সঠিক বাস্তবায়ন এখনও অনুপস্থিত
সিমুলেটরে, তাই আমরা বেশ কিছু সরলীকরণ অনুমান সংরক্ষণ করি:

· একাধিক ক্যারিয়ার ফ্রিকোয়েন্সি সমর্থিত নয়;

· একাধিক পাবলিক ল্যান্ড মোবাইল নেটওয়ার্ক (PLMN) পরিচয় (যেমন একাধিক নেটওয়ার্ক
অপারেটর) সমর্থিত নয়;

· RSRQ পরিমাপ ব্যবহার করা হয় না;

· সঞ্চিত তথ্য সেল নির্বাচন সমর্থিত নয়;

· "যেকোনো সেল নির্বাচন" অবস্থা এবং একটি গ্রহণযোগ্য কক্ষে ক্যাম্পিং সমর্থিত নয়;

· একটি ঘরকে বাধা বা সংরক্ষিত হিসাবে চিহ্নিত করা সমর্থিত নয়;

· সেল পুনঃনির্বাচন সমর্থিত নয়, তাই UE-এর পক্ষে ক্যাম্প করা সম্ভব নয়
প্রাথমিক ক্যাম্প স্থাপনের পর বিভিন্ন সেল; এবং

UE এর ক্লোজড সাবস্ক্রাইবার গ্রুপ (CSG) সাদা তালিকায় শুধুমাত্র একটি CSG পরিচয় রয়েছে।

এছাড়াও মনে রাখবেন যে প্রাথমিক সেল নির্বাচন শুধুমাত্র EPC-সক্ষম সিমুলেশনের জন্য উপলব্ধ।
LTE-শুধুমাত্র সিমুলেশনে অবশ্যই ম্যানুয়াল সংযুক্তি পদ্ধতি ব্যবহার করতে হবে। বিভাগ দেখুন
তাদের পার্থক্য সম্পর্কে আরও তথ্যের জন্য ব্যবহারকারী ডকুমেন্টেশনের সেকেন্ড-নেটওয়ার্ক-সংযুক্তি
ব্যবহারে

পরবর্তী উপবিভাগগুলি প্রাথমিক কোষ নির্বাচনের বিভিন্ন অংশকে কভার করে, যথা কোষ অনুসন্ধান,
ব্রডকাস্ট of পদ্ধতি তথ্য, এবং কোষ নির্বাচন মূল্যায়ন.

কোষ সার্চ
সেল অনুসন্ধানের লক্ষ্য আশেপাশের কোষ সনাক্ত করা এবং প্রাপ্ত সংকেতের শক্তি পরিমাপ করা
এই কোষগুলির প্রতিটি থেকে। এই কক্ষগুলির মধ্যে একটি UE-এর এন্ট্রি পয়েন্ট হয়ে উঠবে যোগদানের জন্য
সেলুলার নেটওয়ার্ক.

পরিমাপগুলি প্রাপ্ত PSS-এর RSRP-এর উপর ভিত্তি করে, স্তর 1 ফিল্টারিং দ্বারা গড়,
এবং PHY স্তর দ্বারা সঞ্চালিত, যেমনটি পূর্বে বিভাগে আরও বিশদে বর্ণিত হয়েছে UE PHY
পরিমাপ মডেল. PSS কেন্দ্রীয় 72 সাব-ক্যারিয়ারের উপর eNodeB দ্বারা প্রেরণ করা হয়
DL চ্যানেল (বিভাগ 5.1.7.3 [TS36300]), তাই আমরা একটি DL ব্যবহার করে কাজ করার জন্য সেল অনুসন্ধানের মডেল করি
6 RBs এর ব্যান্ডউইথ। মনে রাখবেন RSRQ এর পরিমাপ এই সময়ে উপলব্ধ নেই
সিমুলেশনে ফলস্বরূপ, দ LteUePhy::RsrqUeMeasThreshold বৈশিষ্ট্য না
সেল অনুসন্ধানের সময় আবেদন করুন।

পরিমাপ করা RSRP ব্যবহার করে, PHY সত্তা সনাক্ত করা কোষগুলির একটি তালিকা তৈরি করতে সক্ষম হয়,
প্রতিটি তার সংশ্লিষ্ট সেল আইডি এবং গড় RSRP সহ। এই তালিকা পর্যায়ক্রমে push করা হয়
CPHY SAP এর মাধ্যমে RRC সত্তাকে একটি পরিমাপ প্রতিবেদন হিসাবে।

RRC সত্তা রিপোর্টটি পরিদর্শন করে এবং সহজভাবে শক্তিশালী RSRP সহ সেল বেছে নেয়, যেমন
এছাড়াও [TS5.2.3.1] এর অধ্যায় 36304 এ নির্দেশিত। তারপর এটি PHY সত্তাকে নির্দেশ দেয়
এই বিশেষ কক্ষের সাথে সিঙ্ক্রোনাইজ করুন। সেলের প্রকৃত অপারেটিং ব্যান্ডউইথ এখনও আছে
এই সময়ে অজানা, তাই PHY সত্তা শুধুমাত্র ন্যূনতম ব্যান্ডউইথ 6 RBs শুনে।
তবুও, PHY সত্তা এটি থেকে সিস্টেম সম্প্রচার বার্তা গ্রহণ করতে সক্ষম হবে
বিশেষ eNodeB, যা পরবর্তী উপধারার বিষয়।

সম্প্রচার of পদ্ধতি তথ্য
সিস্টেম তথ্য ব্লকগুলি পূর্বনির্ধারিত সময়ের ব্যবধানে ENodeB দ্বারা UE-তে সম্প্রচার করা হয়,
[TS5.2.1.2] এর বিভাগ 36331 থেকে অভিযোজিত। সমর্থিত সিস্টেম তথ্য ব্লক হল:

·

মালিক তথ্য বাধা (MIB)
সেল চলাকালীন উত্পন্ন PHY স্তর সম্পর্কিত পরামিতিগুলি রয়েছে৷
রেডিও ফ্রেমের শুরুতে প্রতি 10 ms পর পর কনফিগারেশন এবং সম্প্রচার করা হয়
নিয়ন্ত্রণ বার্তা।

·

পদ্ধতি তথ্য বাধা আদর্শ 1 (SIB1)
নেটওয়ার্ক অ্যাক্সেস সম্পর্কিত তথ্য রয়েছে, প্রতি 20 ms এ সম্প্রচার করা হয়
নিয়ন্ত্রণ বার্তা হিসাবে রেডিও ফ্রেমের মাঝখানে। ম্যানুয়াল সংযুক্তি ব্যবহার করা হয় না
পদ্ধতি SIB1 পাওয়ার আগে UE-কে অবশ্যই MIB ডিকোড করতে হবে।

·

পদ্ধতি তথ্য বাধা আদর্শ 2 (SIB2)
UL- এবং RACH- সম্পর্কিত সেটিংস রয়েছে, RRC প্রোটোকলের মাধ্যমে প্রেরণের জন্য নির্ধারিত
সেল কনফিগারেশনের পরে 16 ms এ, এবং তারপর প্রতি 80 ms পুনরাবৃত্তি করুন (কনফিগারযোগ্য
দ্বারা LteEnbrRrc::সিস্টেম ইনফরমেশন পর্যায়ক্রমিকতা বৈশিষ্ট্য UE শিবির করা আবশ্যক
একটি কক্ষে যাতে তার SIB2 পেতে সক্ষম হয়।

UE এর জীবনচক্রে অগ্রসর হওয়ার জন্য সিস্টেম তথ্য গ্রহণ করা মৌলিক। এমআইবি
UE-কে 6 RB-এর প্রাথমিক DL ব্যান্ডউইথ প্রকৃত অপারেটিং-এ বৃদ্ধি করতে সক্ষম করে
নেটওয়ার্কের ব্যান্ডউইথ। SIB1 কোষ নির্বাচনের জন্য প্রয়োজনীয় তথ্য প্রদান করে
মূল্যায়ন (পরবর্তী বিভাগে ব্যাখ্যা করা হয়েছে)। এবং অবশেষে UE এর আগে SIB2 প্রয়োজন
সংযুক্ত অবস্থায় স্যুইচ করার অনুমতি দেওয়া হয়েছে।

কোষ নির্বাচন মূল্যায়ন
UE RRC উত্পাদিত পরিমাপ প্রতিবেদন পর্যালোচনা করে কোষ সার্চ এবং সেল অ্যাক্সেস
SIB1 দ্বারা প্রদত্ত তথ্য। একবার উভয় তথ্য একটি নির্দিষ্ট ঘরের জন্য উপলব্ধ হলে,
UE মূল্যায়ন প্রক্রিয়া ট্রিগার করে। এই প্রক্রিয়ার উদ্দেশ্য হল কিনা তা নির্ধারণ করা
সেলটি ক্যাম্প করার জন্য একটি উপযুক্ত সেল।

মূল্যায়ন প্রক্রিয়াটি [TS5.2.3.2] এর বিভাগ 36304 এর একটি সামান্য সরলীকৃত সংস্করণ।
এটি নিম্নলিখিত মানদণ্ড নিয়ে গঠিত:

· Rx স্তরের মানদণ্ড; এবং

· ক্লোজড সাবস্ক্রাইবার গ্রুপ (CSG) মাপকাঠি।

প্রথম মানদণ্ড, Rx স্তর, কোষের পরিমাপিত RSRP Q_{rxlevmeas} এর উপর ভিত্তি করে, যা
মানদণ্ড পাস করার জন্য একটি প্রয়োজনীয় ন্যূনতম Q_{rxlevmin} এর চেয়ে বেশি হতে হবে:

যেখানে Q_{rxlevmin} প্রতিটি eNodeB দ্বারা নির্ধারিত হয় এবং SIB1 থেকে UE দ্বারা প্রাপ্ত হয়৷

শেষ মাপকাঠি, CSG, হল একটি সত্য-অথবা-মিথ্যা প্যারামিটারের সমন্বয় যাকে বলা হয় সিএসজি
ইঙ্গিত এবং একটি সাধারণ সংখ্যা সিএসজি পরিচয়. মূল নিয়ম হল যে UE শিবির করবে না
একটি ভিন্ন CSG পরিচয় সহ eNodeB। কিন্তু এই নিয়ম তখনই বলবৎ হয় যখন CSG ইঙ্গিত দেয়
সত্য হিসাবে মূল্যবান. ব্যবহারকারীর সেক-নেটওয়ার্ক-অ্যাটাচমেন্ট বিভাগে আরও বিশদ দেওয়া আছে
নথিপত্র।

যখন সেলটি উপরের সমস্ত মানদণ্ডে উত্তীর্ণ হয়, তখন সেলটিকে হিসাবে গণ্য করা হয় উপযুক্ত. তারপর UE
এটিতে শিবির (IDLE_CAMPED_NORMALLY অবস্থা).

এর পরে, উপরের স্তর সংযুক্ত মোডে প্রবেশ করার জন্য UE অনুরোধ করতে পারে। অনুগ্রহ করে বিভাগ পড়ুন
আর সি সংযোগ সংস্থা এই সম্পর্কে বিশদ জন্য।

অন্যদিকে, যখন সেলটি CSG মানদণ্ড পাস করে না, তখন সেলটি লেবেল করা হয়
as গ্রহণযোগ্য (বিভাগ 10.1.1.1 [TS36300])। এই ক্ষেত্রে, RRC সত্তা PHY কে বলবে
দ্বিতীয় শক্তিশালী কক্ষের সাথে সিঙ্ক্রোনাইজ করার জন্য সত্তা এবং প্রাথমিক সেল নির্বাচনের পুনরাবৃত্তি করুন
যে সেল ব্যবহার করে পদ্ধতি। যতক্ষণ পর্যন্ত কোন উপযুক্ত ঘর পাওয়া না যায়, UE এইগুলি পুনরাবৃত্তি করবে
গ্রহণযোগ্য হিসাবে চিহ্নিত করা হয়েছে এমন কোষ এড়ানোর সময় পদক্ষেপ।

রেডিও স্বীকারোক্তি নিয়ন্ত্রণ
রেডিও ভর্তি নিয়ন্ত্রণ একটি RRC সংযোগে eNB RRC উত্তর দিয়ে সমর্থিত
একটি RRC সংযোগ সেটআপ বার্তা বা একটি RRC সহ UE দ্বারা পাঠানো অনুরোধ বার্তা
সংযোগ প্রত্যাখ্যান বার্তা, নতুন UE ভর্তি করা হবে কি না তার উপর নির্ভর করে। ভিতরে
বর্তমান বাস্তবায়ন, আচরণ বুলিয়ান বৈশিষ্ট্য দ্বারা নির্ধারিত হয়
ns3::LteEnbrRrc::AdmitRrcConnectionRequest. বর্তমানে কোন রেডিও ভর্তি নিয়ন্ত্রণ নেই
অ্যালগরিদম যা গতিশীলভাবে সিদ্ধান্ত নেয় যে একটি নতুন সংযোগ গ্রহণ করা হবে কি না।

রেডিও বাহক কনফিগারেশন
রেডিও সেটআপের বিষয়ে RRC-তে কিছু বাস্তবায়ন পছন্দ করা হয়েছে
বাহক:

· তিনটি লজিক্যাল চ্যানেল গ্রুপ (চারটি উপলব্ধের মধ্যে) আপলিংক বাফারের জন্য কনফিগার করা হয়েছে
স্ট্যাটাস রিপোর্ট উদ্দেশ্য, নিম্নলিখিত নীতি অনুযায়ী:

· LCG 0 হল রেডিও বাহককে সংকেত দেওয়ার জন্য

· LCG 1 হল GBR ডেটা রেডিও বহনকারীদের জন্য

· এলসিজি 2 নন-জিবিআর ডেটা রেডিও বহনকারীদের জন্য

রেডিও লিংক ব্যর্থতা
যেহেতু এই পর্যায়ে RRC শুধুমাত্র সংযুক্ত মোড সমর্থন করে, রেডিও লিঙ্ক ব্যর্থতা (RLF) হল
পরিচালনা করা হয় না কারণ হল RLF এর সম্ভাব্য ফলাফলগুলির মধ্যে একটি (যখন RRC
পুনঃপ্রতিষ্ঠা অসফল) RRC-এর NAS-কে জানিয়ে RRC Connected ছেড়ে যেতে হবে
সংযোগ বিচ্ছিন্ন. সঠিকভাবে RLF মডেল করার জন্য, RRC IDLE মোড সমর্থন করা উচিত,
বিশেষ নিষ্ক্রিয় মোড সেল (পুনরায়) নির্বাচন সহ।

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

UE আর সি পরিমাপ মডেল
UE আর সি পরিমাপ সমর্থন
UE RRC সত্তা UE পরিমাপের জন্য সমর্থন প্রদান করে; বিশেষ করে, এটি বাস্তবায়ন করে
নিম্নলিখিত সরলীকরণ সহ [TS5.5] এর বিভাগ 36331 এ বর্ণিত পদ্ধতিগুলি
অনুমান:

· শুধুমাত্র E-UTRA আন্তঃ-ফ্রিকোয়েন্সি পরিমাপ সমর্থিত, যা বোঝায়:

সিমুলেশনের সময় শুধুমাত্র একটি পরিমাপ বস্তু ব্যবহার করা হয়;

· পরিমাপ করার জন্য পরিমাপের ফাঁক প্রয়োজন হয় না;

ইভেন্ট B1 এবং B2 বাস্তবায়িত হয় না;

· কেবল রিপোর্ট শক্তিশালী সেল উদ্দেশ্য সমর্থিত হয়, যখন রিপোর্ট সিজিআই এবং
রিপোর্ট স্ট্রংজেস্ট সেলসফরসন উদ্দেশ্য সমর্থিত নয়;

· s- পরিমাপ সমর্থিত নয়;

· যেহেতু বাহক সমষ্টি LTE মডিউল দ্বারা সমর্থিত নয়, নিম্নলিখিতগুলি
UE পরিমাপের অনুমান সত্য ধরে রাখে:

গৌণ কোষের কোন ধারণা নেই (SCell);

প্রাথমিক কোষ (পিসেল) এর সহজ অর্থ হল পরিবেশন সেল;

· ইভেন্ট A6 বাস্তবায়িত হয় না;

· টাইম-টু-ট্রিগারের গতি নির্ভর স্কেলিং ( [TS5.5.6.2] এর বিভাগ 36331) নয়
সমর্থিত।

সার্বিক নকশা
মডেল ধারণার উপর ভিত্তি করে UE পরিমাপ ভোক্তা, যা একটি সত্তা যে হতে পারে
UE পরিমাপ রিপোর্ট প্রদান করার জন্য একটি eNodeB RRC সত্তাকে অনুরোধ করুন। ভোক্তারা, জন্য
উদাহরণ, হস্তান্তর অ্যালগরিদম, যা UE পরিমাপের উপর ভিত্তি করে হস্তান্তরের সিদ্ধান্ত গণনা করে
রিপোর্ট টেস্ট কেস এবং ব্যবহারকারীর প্রোগ্রামগুলিও ভোক্তা হয়ে উঠতে পারে। চিত্র সম্পর্ক
মধ্যে UE পরিমাপ এবং এর ভোক্তাদের এই সত্তার মধ্যে সম্পর্ক চিত্রিত করে।
[ছবি] UE পরিমাপ এবং এর ভোক্তাদের মধ্যে সম্পর্ক। UNINDENT

RRC স্তরে সম্পূর্ণ UE পরিমাপ ফাংশন 4টি প্রধান অংশে বিভক্ত:

1. পরিমাপ কনফিগারেশন ( দ্বারা পরিচালিত LteUeRrc::ApplyMeasConfig)

2. পরিমাপ সম্পাদন করা (এর দ্বারা পরিচালিত LteUeRrc::DoReportUeMeasurments)

3. পরিমাপ রিপোর্ট ট্রিগারিং (এর দ্বারা পরিচালিত LteUeRrc::MeasurementReportTriggering)

4. পরিমাপ রিপোর্টিং (এর দ্বারা পরিচালিত LteUeRrc::SendMeasurementReport)

নিম্নলিখিত বিভাগগুলি উপরের প্রতিটি অংশের বর্ণনা করবে।

মাপা কনফিগারেশন
একটি eNodeB RRC সত্তা কনফিগারেশন প্যারামিটার পাঠিয়ে UE পরিমাপ কনফিগার করে
UE RRC সত্তা। পরামিতি এই সেট মধ্যে সংজ্ঞায়িত করা হয় MeasConfig তথ্য
RRC সংযোগ পুনর্বিন্যাস বার্তার উপাদান (IE) (আর সি সংযোগ
পুনরায় সেটআপ).

eNodeB RRC সত্তা কনফিগারেশন প্যারামিটার এবং পদ্ধতিগুলিকে প্রয়োগ করে যা বর্ণিত হয়েছে৷
নিম্নলিখিত সরলীকরণ অনুমান সহ [TS5.5.2] এর অধ্যায় 36331:

· কনফিগারেশন (অর্থাৎ সংযোজন, পরিবর্তন এবং অপসারণ) শুধুমাত্র এর আগে করা যেতে পারে
সিমুলেশন শুরু হয়;

· eNodeB-এর সাথে সংযুক্ত সমস্ত UE একইভাবে কনফিগার করা হবে, অর্থাৎ সেখানে নেই
নির্দিষ্ট UE জন্য নির্দিষ্ট পরিমাপ কনফিগার করার জন্য সমর্থন; এবং

· মনে করা হয় যে পিসিআই এবং ই-ইউট্রান-এর মধ্যে এক থেকে এক ম্যাপিং আছে
গ্লোবাল সেল আইডেন্টিফায়ার (EGCI)। এটি PCI মডেলিং অনুমানের সাথে সামঞ্জস্যপূর্ণ
বর্ণিত UE PHY পরিমাপ মডেল.

এখানে eNodeB RRC উদাহরণটি ভোক্তা এবং এর মধ্যে মধ্যস্থতাকারী হিসাবে কাজ করে
সংযুক্ত UE. সিমুলেশনের শুরুতে, প্রতিটি ভোক্তা eNodeB RRC প্রদান করে
UE পরিমাপ কনফিগারেশনের সাথে উদাহরণ যা এটি প্রয়োজন। এর পরে, eNodeB
RRC সংযুক্ত UE-তে কনফিগারেশন বিতরণ করে।

ব্যবহারকারীরা বিভিন্ন পদ্ধতি ব্যবহার করে পরিমাপ কনফিগারেশন কাস্টমাইজ করতে পারে। অনুগ্রহ করে উল্লেখ করুন
এর বর্ণনার জন্য ব্যবহারকারী ডকুমেন্টেশনের বিভাগ সেক-কনফিগার-ইউ-মাপ
এই পদ্ধতি।

করণ পরিমাপ
UE RRC পর্যায়ক্রমে UE PHY থেকে RSRP এবং RSRQ উভয় পরিমাপ গ্রহণ করে, যেমন
বর্ণিত UE PHY পরিমাপ মডেল. স্তর 3 ফিল্টারিং এগুলো প্রয়োগ করা হবে
প্রাপ্ত পরিমাপ. ফিল্টারিং এর বাস্তবায়ন অনুচ্ছেদ 5.5.3.2 অনুসরণ করে
[TS36331]:

কোথায়:

· M_n হল ভৌত স্তর থেকে সর্বশেষ প্রাপ্ত পরিমাপের ফলাফল;

· F_n হল আপডেট করা ফিল্টার করা পরিমাপের ফলাফল;

· F_{n-1} হল পুরানো ফিল্টার করা পরিমাপের ফলাফল, যেখানে F_0 = M_1 (অর্থাৎ প্রথম
পরিমাপ ফিল্টার করা হয় না); এবং

· a = (ac{1}{2})^{ac{k}{4}}, যেখানে k কনফিগারযোগ্য ফিল্টার কোফিসেন্ট প্রদানকারী
দ্য কোয়ান্টিটি কনফিগারেশন;

k = 4 হল ডিফল্ট মান, কিন্তু সেট করে কনফিগার করা যায় RsrpFilterCoefficient এবং
RsrqFilterCoefficient মধ্যে বৈশিষ্ট্য LteEnbrRrc.

অতএব k = 0 লেয়ার 3 ফিল্টারিং নিষ্ক্রিয় করবে। অন্যদিকে, অতীত পরিমাপ করতে পারেন
k এর বৃহত্তর মান ব্যবহার করে ফিল্টারিং ফলাফলের উপর আরো প্রভাব মঞ্জুর করা হবে।

মাপা প্রতিবেদন ট্রিগারিং
এই অংশে, UE RRC সক্রিয় পরিমাপ কনফিগারেশনের তালিকার মধ্য দিয়ে যাবে এবং
এর ধারা 5.5.4 অনুযায়ী ট্রিগারিং শর্ত পূরণ হয়েছে কিনা তা পরীক্ষা করুন
[TS36331]। যখন সব সক্রিয় পরিমাপ থেকে অন্তত একটি ট্রিগার অবস্থা
কনফিগারেশন পরিপূর্ণ হয়, পরিমাপ রিপোর্টিং পদ্ধতি (পরবর্তীতে বর্ণিত
উপধারা) শুরু করা হবে।

3GPP দুই ধরনের সংজ্ঞায়িত করে triggerType: সাময়িক এবং ঘটনা ভিত্তিক। এই মুহূর্তে, শুধুমাত্র
ইভেন্ট-ভিত্তিক মানদণ্ড সমর্থিত। নির্বাচন করা যেতে পারে বিভিন্ন ইভেন্ট, যা
নীচের টেবিলে সংক্ষিপ্তভাবে বর্ণনা করা হয়েছে:

তালিকা of সমর্থিত ঘটনা ভিত্তিক ট্রিগারিং নির্ণায়ক
┌─────────┬────────────────────────
│নাম │ বর্ণনা │৷
├─────────┼────────────────────────────────
│ইভেন্ট A1 │ পরিবেশন সেল │ এর চেয়ে ভালো হয়ে যায়
│ │ গোবরাট
├─────────┼────────────────────────────────
│ইভেন্ট A2 │ পরিবেশন সেল │ এর চেয়ে খারাপ হয়ে যায়
│ │ গোবরাট
├─────────┼────────────────────────────────
│ইভেন্ট A3 │ প্রতিবেশী হয়ে যায় অফসেট dB │
│ │ পরিবেশন সেলের চেয়ে ভালো │
├─────────┼────────────────────────────────
│ইভেন্ট A4 │ প্রতিবেশী │ এর চেয়ে ভালো হয়ে যায়
│ │ গোবরাট
└─────────┴─────────────────────────

│ইভেন্ট A5 │ পরিবেশন │ এর চেয়ে খারাপ হয়ে যায়
│ │ প্রান্তিক 1 এবং প্রতিবেশী │ হয়ে যায়
│ │ এর চেয়ে ভালো প্রান্তিক 2
└─────────┴─────────────────────────

একটি ইভেন্ট-ভিত্তিক ট্রিগার চেক করা দুটি প্রধান শর্ত হল প্রবেশন শর্ত এবং
দ্য ছোড় শর্ত. এই দুটি সম্পর্কে আরও বিশদ বিবরণ 5.5.4 এর অনুচ্ছেদে পাওয়া যাবে
[TS36331]।

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

সার্জারির সাময়িক রিপোর্টিং ট্রিগারের ধরন সমর্থিত নয়, তবে এর আচরণ সহজেই হতে পারে
একটি ইভেন্ট-ভিত্তিক ট্রিগার ব্যবহার করে প্রাপ্ত। এটি পরিমাপ কনফিগার করে করা যেতে পারে
এমনভাবে যাতে প্রবেশের শর্ত সর্বদা পূরণ হয়, উদাহরণস্বরূপ, সেট করে
ইভেন্ট A1 থেকে শূন্যের থ্রেশহোল্ড (সর্বনিম্ন স্তর)। ফলস্বরূপ, পরিমাপ রিপোর্ট
সর্বদা প্রতিটি নির্দিষ্ট ব্যবধানে ট্রিগার করা হবে, যেমন দ্বারা নির্ধারিত রিপোর্ট ইন্টারভাল
মধ্যে ক্ষেত্র LteRrcSap::ReportConfigEutra, তাই হিসাবে একই আচরণ উত্পাদন
পর্যায়ক্রমিক রিপোর্টিং।

3GPP স্পেসিফিকেশনের ক্ষেত্রে একটি সীমাবদ্ধতা হিসাবে, বর্তমান মডেলটি সমর্থন করে না
কোনো সেল-নির্দিষ্ট কনফিগারেশন। এই কনফিগারেশন পরামিতি পরিমাপ সংজ্ঞায়িত করা হয়
বস্তু ফলস্বরূপ, ট্রিগারিং প্রক্রিয়ায় কালো কোষগুলির একটি তালিকা অন্তর্ভুক্ত করা
সমর্থিত নয়. তাছাড়া, সেল-নির্দিষ্ট অফসেট (যেমন, ইভেন্ট A3, A4-এ O_{cn} এবং O_{cp},
এবং A5) পাশাপাশি সমর্থিত নয়। শূন্যের সমান মান সবসময় এর জায়গায় ধরে নেওয়া হয়
তাদের.

মাপা প্রতিবেদন
এই অংশটি UE RRC সত্তা থেকে পরিমাপ প্রতিবেদন জমা দেওয়ার কাজ পরিচালনা করে
RRC প্রোটোকলের মাধ্যমে eNodeB সত্তাকে পরিবেশন করা। বেশ কিছু সরলীকরণ অনুমান গৃহীত হয়েছে:

· প্রতিবেদনের পরিমাণ is না প্রযোজ্য (অর্থাৎ সর্বদা অসীম বলে ধরে নেওয়া হয়);

· পরিমাপ প্রতিবেদনে, রিপোর্ট পরিমাণ সর্বদা অনুমান করা হয় উভয়, অর্থাৎ, উভয়
RSRP এবং RSRQ সর্বদা রিপোর্ট করা হয়, নির্বিশেষে ট্রিগার পরিমাণ.

হস্তান্তর
RRC মডেল X2-ভিত্তিক হস্তান্তর আহ্বান করে সংযুক্ত মোডে UE গতিশীলতা সমর্থন করে
পদ্ধতি মডেলটি হল ইন্ট্রা-ইউট্রান এবং ইন্ট্রা-ফ্রিকোয়েন্সি, ধারা 10.1.2.1 এর উপর ভিত্তি করে
[TS36300]।

এই বিভাগটি হস্তান্তর ট্রিগার করার প্রক্রিয়ার উপর দৃষ্টি নিবদ্ধ করে। হস্তান্তর মৃত্যুদন্ড
পদ্ধতি নিজেই বিভাগে আচ্ছাদিত করা হয় X2.

হস্তান্তর পদ্ধতিটি ট্রিগার করার দুটি উপায় রয়েছে:

· স্পষ্টভাবে (বা ম্যানুয়ালি) একটি শিডিউল করে সিমুলেশন প্রোগ্রাম দ্বারা ট্রিগার করা হয়েছে
পদ্ধতির সঞ্চালন LteEnbrRrc::SendHandoverRequest; অথবা

· স্বয়ংক্রিয়ভাবে UE পরিমাপের উপর ভিত্তি করে eNodeB RRC সত্তা দ্বারা ট্রিগার করা হয়েছে এবং
নির্বাচিত হ্যান্ডওভার অ্যালগরিদম অনুযায়ী।

ব্যবহারকারী ডকুমেন্টেশনের বিভাগ sec-x2-ভিত্তিক-হ্যান্ডওভার ব্যবহার করার কিছু উদাহরণ প্রদান করে
সিমুলেশনে স্পষ্ট এবং স্বয়ংক্রিয় হস্তান্তর উভয়ই ট্রিগার করে। পরবর্তী উপধারা হবে
স্বয়ংক্রিয় পদ্ধতির উপর ঘনিষ্ঠভাবে নজর দিন, এর ডিজাইনের দিকগুলি বর্ণনা করে
হ্যান্ডওভার অ্যালগরিদম ইন্টারফেস এবং উপলব্ধ হ্যান্ডওভার অ্যালগরিদম।

হস্তান্তর অ্যালগরিদম
3GPP LTE-তে হ্যান্ডওভারের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

·

UE-সহায়তা
UE পরিমাপ প্রতিবেদন আকারে নেটওয়ার্কে ইনপুট প্রদান করে। এই
দ্বারা পরিচালিত হয় UE আর সি পরিমাপ মডেল.

·

নেটওয়ার্ক-নিয়ন্ত্রিত
নেটওয়ার্ক (অর্থাৎ উৎস eNodeB এবং লক্ষ্য eNodeB) সিদ্ধান্ত নেয় কখন করতে হবে
হস্তান্তর ট্রিগার এবং তার মৃত্যুদন্ড তত্ত্বাবধান.

সার্জারির হস্তান্তর অ্যালগরিদম উৎস eNodeB-এ কাজ করে এবং হস্তান্তর করার জন্য দায়ী
একটি "স্বয়ংক্রিয়" পদ্ধতিতে সিদ্ধান্ত। এটি এর মাধ্যমে একটি eNodeB RRC উদাহরণের সাথে ইন্টারঅ্যাক্ট করে
হস্তান্তর ম্যানেজমেন্ট এসএপি ইন্টারফেস. এই সম্পর্কগুলি চিত্রে চিত্রিত করা হয়েছে
সম্পর্ক মধ্যে UE পরিমাপ এবং এর ভোক্তাদের পূর্ববর্তী বিভাগ থেকে।

হ্যান্ডওভার অ্যালগরিদম ইন্টারফেস নিম্নলিখিত পদ্ধতি নিয়ে গঠিত:

·

AddUeMeasReportConfigForHandover
(হ্যান্ডওভার অ্যালগরিদম -> eNodeB RRC) অনুরোধ করার জন্য হ্যান্ডওভার অ্যালগরিদম দ্বারা ব্যবহৃত
eNodeB RRC সত্তা থেকে পরিমাপ রিপোর্ট, কাঙ্ক্ষিত পাস করে
রিপোর্টিং কনফিগারেশন। কনফিগারেশন সব ভবিষ্যতে প্রয়োগ করা হবে
সংযুক্ত UE.

·

ReportUeMeas
(eNodeB RRC -> হ্যান্ডওভার অ্যালগরিদম) কনফিগার করা UE পরিমাপের উপর ভিত্তি করে
আগে AddUeMeasReportConfigForHandover, UE পরিমাপ রিপোর্ট জমা দিতে পারে
eNodeB-তে। eNodeB RRC সত্তা ব্যবহার করে ReportUeMeas ইন্টারফেস থেকে
হ্যান্ডওভার অ্যালগরিদম এই পরিমাপ রিপোর্ট ফরোয়ার্ড.

·

ট্রিগারহ্যান্ডওভার
(হ্যান্ডওভার অ্যালগরিদম -> eNodeB RRC) পরিমাপ রিপোর্ট পরীক্ষা করার পর
(কিন্তু অগত্যা নয়), হ্যান্ডওভার অ্যালগরিদম হস্তান্তর ঘোষণা করতে পারে। এই
পদ্ধতিটি এই সিদ্ধান্ত সম্পর্কে eNodeB RRC সত্তাকে অবহিত করতে ব্যবহৃত হয়, যা করবে
তারপর হস্তান্তর প্রক্রিয়া শুরু করতে এগিয়ে যান।

জন্য একটি নোট AddUeMeasReportConfigForHandover. পদ্ধতিটি ফেরত দেবে measId
নতুন তৈরি পরিমাপ কনফিগারেশনের (পরিমাপ পরিচয়)। সাধারণত ক
হ্যান্ডওভার অ্যালগরিদম এই অনন্য নম্বর সংরক্ষণ করবে। এটা কাজে লাগতে পারে ReportUeMeas
পদ্ধতি, উদাহরণস্বরূপ যখন একাধিক কনফিগারেশন অনুরোধ করা হয়েছে এবং হস্তান্তর
অ্যালগরিদমকে কনফিগারেশনের উপর ভিত্তি করে ইনকামিং রিপোর্টগুলিকে আলাদা করতে হবে
তাদের ট্রিগার.

একটি হ্যান্ডওভার অ্যালগরিদম এর একটি সাবক্লাস লিখে প্রয়োগ করা হয় LteHandover Algorithm
বিমূর্ত সুপারক্লাস এবং উপরে উল্লিখিত SAP ইন্টারফেস পদ্ধতির প্রতিটি বাস্তবায়ন।
ব্যবহারকারীরা এইভাবে তাদের নিজস্ব হ্যান্ডওভার অ্যালগরিদম বিকাশ করতে পারে এবং তারপরে এটি যে কোনও সিমুলেশনে ব্যবহার করতে পারে
ব্যবহারকারীর বিভাগ sec-x2-ভিত্তিক-হ্যান্ডওভারে বর্ণিত পদক্ষেপগুলি অনুসরণ করে
নথিপত্র।

বিকল্পভাবে, ব্যবহারকারীরা প্রদত্ত 3টি অন্তর্নির্মিত হ্যান্ডওভার অ্যালগরিদমের মধ্যে একটি ব্যবহার করতে পারেন৷
LTE মডিউল দ্বারা: no-op, A2-A4-RSRQ, এবং শক্তিশালী সেল হ্যান্ডওভার অ্যালগরিদম৷ তারা
সিমুলেশনে ব্যবহার করার জন্য প্রস্তুত বা হস্তান্তর বাস্তবায়নের উদাহরণ হিসাবে নেওয়া যেতে পারে
অ্যালগরিদম এই অন্তর্নির্মিত অ্যালগরিদমগুলির প্রতিটি নিম্নলিখিত প্রতিটিতে কভার করা হয়েছে৷
উপধারা

না-ওপ হস্তান্তর অ্যালগরিদম
সার্জারির no-op হস্তান্তর অ্যালগরিদম (NoOpHandover Algorithm ক্লাস) সহজতম সম্ভব
হস্তান্তর অ্যালগরিদম বাস্তবায়ন। এটি মূলত কিছুই করে না, অর্থাত্, কোনও কল করে না
হ্যান্ডওভার ম্যানেজমেন্ট এসএপি ইন্টারফেস পদ্ধতি। ব্যবহারকারীরা এই হ্যান্ডওভার অ্যালগরিদম বেছে নিতে পারে
যদি তারা তাদের সিমুলেশনে স্বয়ংক্রিয় হ্যান্ডওভার ট্রিগার অক্ষম করতে চায়।

A2-A4-RSRQ হস্তান্তর অ্যালগরিদম
সার্জারির A2-A4-RSRQ হস্তান্তর অ্যালগরিদম ডিফল্ট হ্যান্ডওভারের কার্যকারিতা প্রদান করে
অ্যালগরিদম মূলত LENA M6 (ns-3.18) এ অন্তর্ভুক্ত, হ্যান্ডওভার ম্যানেজমেন্ট এসএপি-তে পোর্ট করা হয়েছে
হিসাবে ইন্টারফেস A2A4RsrqHandover অ্যালগরিদম বর্গ.

নাম থেকে বোঝা যায়, অ্যালগরিদম রেফারেন্স সিগন্যাল রিসিভড কোয়ালিটি (RSRQ) ব্যবহার করে
ইভেন্ট A2 এবং ইভেন্ট A4 থেকে অর্জিত পরিমাপ। এইভাবে, অ্যালগরিদম 2 যোগ করবে
সংশ্লিষ্ট eNodeB RRC উদাহরণে পরিমাপ কনফিগারেশন। তাদের উদ্দেশ্য ব্যবহার হয়
নিম্নরূপ বর্ণিত:

· ঘটনা A2 (সার্ভিং সেলের RSRQ এর চেয়ে খারাপ হয়ে যায় গোবরাট) বোঝাতে লিভারেজ করা হয়
যে UE দুর্বল সংকেত মানের সম্মুখীন হচ্ছে এবং একটি হস্তান্তর থেকে উপকৃত হতে পারে।

· ঘটনা A4 (প্রতিবেশী সেলের RSRQ এর চেয়ে ভাল হয়ে যায় গোবরাট) সনাক্ত করতে ব্যবহৃত হয়
প্রতিবেশী কোষ এবং প্রতিটি সংযুক্ত UE থেকে তাদের সংশ্লিষ্ট RSRQ অর্জন করে, যা
তারপর অ্যালগরিদম দ্বারা অভ্যন্তরীণভাবে সংরক্ষণ করা হয়। ডিফল্টরূপে, অ্যালগরিদম কনফিগার করে
খুব কম থ্রেশহোল্ড সহ ইভেন্ট A4, যাতে ট্রিগারের মানদণ্ড সর্বদা সত্য হয়৷

ব্যক্তিত্ব A2-A4-RSRQ হস্তান্তর অ্যালগরিদম নীচে এই পদ্ধতির সারসংক্ষেপ।
[ছবি] A2-A4-RSRQ হ্যান্ডওভার অ্যালগরিদম।UNINDENT

অ্যালগরিদম আচরণ টিউন করতে দুটি বৈশিষ্ট্য সেট করা যেতে পারে:

·

সার্ভিং সেল থ্রেশহোল্ড
সার্জারির গোবরাট ইভেন্ট A2-এর জন্য, অর্থাৎ একটি UE-এর অবশ্যই এর থেকে কম RSRQ থাকতে হবে
থ্রেশহোল্ড একটি হস্তান্তর জন্য বিবেচনা করা হবে.

·

NeighbourCellOffset
সার্জারির অফসেট এর লক্ষ্য হল UE আরও ভাল সিগন্যাল গুণমান পাবে তা নিশ্চিত করা
হস্তান্তরের পরে একটি প্রতিবেশী কোষকে লক্ষ্য কোষ হিসাবে বিবেচনা করা হয়
হস্তান্তর শুধুমাত্র যদি এর RSRQ পরিমান দ্বারা পরিবেশন সেলের RSRQ থেকে বেশি হয়
এই এর অফসেট.

উভয় বৈশিষ্ট্যের মান RSRQ পরিসর হিসাবে প্রকাশ করা হয় ([TS9.1.7] এর বিভাগ 36133),
যেটি 0 এবং 34 এর মধ্যে একটি পূর্ণসংখ্যা, যেখানে 0 সর্বনিম্ন RSRQ হিসাবে।

শক্তিশালী কোষ হস্তান্তর অ্যালগরিদম
সার্জারির শক্তিশালী কোষ হস্তান্তর অ্যালগরিদম, বা কখনও কখনও হিসাবে পরিচিত ঐতিহ্যগত ক্ষমতা
বাজেট (PBGT) অ্যালগরিদম, রেফারেন্স হিসাবে [Dimou2009] ব্যবহার করে বিকশিত হয়েছে। ধারণা করা হয়
প্রতিটি UE প্রদান করুন সম্ভাব্য সর্বোত্তম রেফারেন্স সিগন্যাল রিসিভড পাওয়ার (RSRP)। এই
যত তাড়াতাড়ি একটি ভাল সেল (অর্থাৎ শক্তিশালী RSRP সঙ্গে) একটি হস্তান্তর সম্পাদন দ্বারা সম্পন্ন করা হয়
সনাক্ত.

ঘটনা A3 (প্রতিবেশী সেলের আরএসআরপি পরিবেশন করা সেলের আরএসআরপির চেয়ে ভাল হয়) বেছে নেওয়া হয়
এই ধারণা উপলব্ধি করুন। দ্য A3RsrpHandover Algorithm ক্লাস এর ফলাফল
বাস্তবায়ন. পরিমাপের সেরা কক্ষে UE-এর জন্য হস্তান্তর করা হয়৷
রিপোর্ট।

একটি সিমুলেশন যা এই অ্যালগরিদম ব্যবহার করে সাধারণত পিং-পং হ্যান্ডওভারের জন্য বেশি ঝুঁকিপূর্ণ
(সংক্ষিপ্ত সময়ের মধ্যে পূর্ববর্তী উত্স eNodeB-এ ধারাবাহিক হস্তান্তর),
বিশেষ করে যখন ফেইড মডেল সক্রিয় করা হয়. এই সমস্যা সাধারণত দ্বারা মোকাবেলা করা হয়
হস্তান্তর একটি নির্দিষ্ট বিলম্ব প্রবর্তন. অ্যালগরিদম অন্তর্ভুক্ত করে এটি করে
হিস্টেরেসিস এবং টাইম-টু-ট্রিগার প্যারামিটার ([TS6.3.5] এর বিভাগ 36331) UE-তে
পরিমাপ কনফিগারেশন।

hysteresis (ওরফে হ্যান্ডওভার মার্জিন) RSRP-এর ক্ষেত্রে হস্তান্তর বিলম্বিত করে। মান হল
dB তে প্রকাশ করা হয়, 0 থেকে 15 dB এর মধ্যে পরিসীমা, এবং একটি 0.5 dB নির্ভুলতা আছে, যেমন, একটি ইনপুট
2.7 dB এর মান 2.5 dB তে বৃত্তাকার।

অন্য দিকে, সময় থেকে ট্রিগার সময়ের ব্যাপারে হস্তান্তর বিলম্বিত করে। 3GPP 16 সংজ্ঞায়িত করে
টাইম-টু-ট্রিগারের জন্য বৈধ মান (সমস্ত মিলিসেকেন্ডে): 0, 40, 64, 80, 100, 128, 160, 256,
320, 480, 512, 640, 1024, 1280, 2560, এবং 5120।

হিস্টেরেসিস এবং টাইম-টু-ট্রিগারের মধ্যে পার্থক্য চিত্রে দেখানো হয়েছে প্রভাব of
হিস্টেরিসিস এবং সময় থেকে ট্রিগার in শক্তিশালী কোষ হস্তান্তর অ্যালগরিদম নীচে, যা নেওয়া হয়
থেকে lena-x2-হস্তান্তর-পরিমাপ উদাহরণ এটি পরিবেশন কোষের অনুভূত RSRP চিত্রিত করে
এবং একটি UE দ্বারা একটি প্রতিবেশী কোষ যা কোষের সীমানা অতিক্রম করে।
[ছবি] হিস্টেরেসিসের প্রভাব এবং শক্তিশালী সেল হস্তান্তরে সময়-টু-ট্রিগার
অ্যালগরিদম।UNINDENT

ডিফল্টরূপে, অ্যালগরিদম 3.0 dB এর হিস্টেরেসিস এবং 256 ms এর টাইম-টু-ট্রিগার ব্যবহার করে।
এই মানগুলির মাধ্যমে টিউন করা যেতে পারে hysteresis এবং TimeToTrigger বৈশিষ্ট্য
A3RsrpHandover Algorithm বর্গ.

প্রতিবেশী সম্পর্ক
LTE মডিউল একটি সরলীকৃত সমর্থন করে স্বয়ংক্রিয় প্রতিবেশী সম্পর্ক (ANR) ফাংশন। এই
দ্বারা পরিচালিত LteAnr ক্লাস, যা ANR এর মাধ্যমে একটি eNodeB RRC উদাহরণের সাথে ইন্টারঅ্যাক্ট করে
SAP ইন্টারফেস।

প্রতিবেশী সম্পর্ক টেবিল
ANR একটি ধারণ করে প্রতিবেশী সম্পর্ক টেবিল (NRT), অনুচ্ছেদে বর্ণনার অনুরূপ
[TS22.3.2] এর 36300a। টেবিলের প্রতিটি এন্ট্রিকে বলা হয় a প্রতিবেশী সম্পর্ক (NR) এবং
একটি সনাক্ত করা প্রতিবেশী কোষের প্রতিনিধিত্ব করে, যা নিম্নলিখিত বুলিয়ান ক্ষেত্রগুলি ধারণ করে:

·

না অপসারণ
নির্দেশ করে যে NR হবে না এনআরটি থেকে সরানো হবে। এই সত্য by
ব্যবহারকারী-প্রদত্ত NR-এর জন্য ডিফল্ট এবং মিথ্যা অন্যথায়।

·

না X2 নির্দেশ করে যে NR হবে না শুরু করার জন্য একটি X2 ইন্টারফেস ব্যবহার করুন
টার্গেট সেলকে প্যারেন্টিং করার জন্য eNodeB-এর পদ্ধতি। এই মিথ্যা by
ব্যবহারকারী-প্রদত্ত NR-এর জন্য ডিফল্ট, এবং সত্য অন্যথায়।

·

না HO নির্দেশ করে যে NR হবে না হস্তান্তরের কারণে eNodeB দ্বারা ব্যবহার করা হবে।
এই সত্য অধিকাংশ ক্ষেত্রে, NR উভয়ই ব্যবহারকারী-প্রদত্ত এবং
নেটওয়ার্ক সনাক্ত করা হয়েছে।

প্রতিটি NR এন্ট্রিতে নিম্নলিখিত বৈশিষ্ট্যগুলির মধ্যে অন্তত একটি থাকতে পারে:

·

ব্যবহারকারী-প্রদত্ত
এই ধরনের NR সিমুলেশন ব্যবহারকারীর নির্দেশ অনুসারে তৈরি করা হয়। উদাহরণ স্বরূপ,
একটি এনআর স্বয়ংক্রিয়ভাবে তৈরি হয় ব্যবহারকারীর দ্বারা X2-এর প্রতিষ্ঠার পরে
2 eNodeB-এর মধ্যে সংযোগ, যেমন বিভাগে বর্ণিত
sec-x2-ভিত্তিক-হস্তান্তর। ব্যবহারকারী-প্রদত্ত NR তৈরি করার আরেকটি উপায় হল কল করা
প্রতিবেশী সম্পর্ক যোগ করুন স্পষ্টভাবে ফাংশন।

·

নেটওয়ার্ক সনাক্ত করা হয়েছে
এই ধরনের এনআর স্বয়ংক্রিয়ভাবে সিমুলেশনের ফলে তৈরি হয়
কাছাকাছি একটি কোষ আবিষ্কার.

স্বয়ংক্রিয়ভাবে নেটওয়ার্ক-সনাক্ত NR তৈরি করার জন্য, ANR UE পরিমাপ ব্যবহার করে। ভিতরে
অন্য কথায়, ANR হল UE পরিমাপের ভোক্তা, যেমন চিত্রে দেখানো হয়েছে সম্পর্ক
মধ্যে UE পরিমাপ এবং এর ভোক্তাদের. RSRQ এবং ইভেন্ট A4 (প্রতিবেশী আরও ভাল হয়ে যায়
চেয়ে গোবরাটরিপোর্টিং কনফিগারেশনের জন্য ব্যবহার করা হয়। ডিফল্ট ইভেন্ট A4 গোবরাট
সর্বনিম্ন সম্ভাব্য, অর্থাৎ, সর্বাধিক সনাক্তকরণ ক্ষমতা সেট করা হয়, কিন্তু দ্বারা পরিবর্তন করা যেতে পারে
সেট করা গোবরাট এর বৈশিষ্ট্য LteAnr ক্লাস উল্লেখ্য যে A2-A4-RSRQ হস্তান্তর
অ্যালগরিদম একটি অনুরূপ রিপোর্টিং কনফিগারেশন ব্যবহার করে। মিল থাকা সত্ত্বেও, যখন
ANR এবং এই হ্যান্ডওভার অ্যালগরিদম উভয়ই eNodeB-তে সক্রিয়, তারা আলাদা রিপোর্টিং ব্যবহার করে
কনফিগারেশন.

এছাড়াও মনে রাখবেন যে X2 ইন্টারফেসের স্বয়ংক্রিয় সেটআপ সমর্থিত নয়। এই কারণ
দ্য না X2 এবং না HO ক্ষেত্রগুলি একটি নেটওয়ার্ক-শনাক্ত করা সত্য কিন্তু ব্যবহারকারী-সনাক্ত NR নয়।

ভূমিকা of ANR- এর in ব্যাজ
ANR SAP ইন্টারফেস ANR এবং eNodeB RRC এর মধ্যে যোগাযোগের মাধ্যম প্রদান করে। কিছু
ইন্টারফেস ফাংশনগুলি eNodeB RRC দ্বারা NRT এর সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহার করা হয়, যা নীচে দেখানো হয়েছে:

·

প্রতিবেশী সম্পর্ক যোগ করুন
(eNodeB RRC -> ANR) NRT-তে ব্যবহারকারী-প্রদত্ত একটি নতুন NR এন্ট্রি যোগ করুন।

·

GetNoRemove
(eNodeB RRC -> ANR) এর মান পান না অপসারণ একটি NR এন্ট্রি ক্ষেত্র
প্রদত্ত সেল আইডি।

·

GetNoHo
(eNodeB RRC -> ANR) এর মান পান না HO প্রদত্ত একটি NR এন্ট্রির ক্ষেত্র
সেল আইডি।

·

GetNoX2
(eNodeB RRC -> ANR) এর মান পান না X2 প্রদত্ত একটি NR এন্ট্রির ক্ষেত্র
সেল আইডি।

UE পরিমাপের ভোক্তা হিসাবে ANR-এর ভূমিকাকে সমর্থন করার জন্য অন্যান্য ইন্টারফেস ফাংশন বিদ্যমান,
নীচে তালিকাবদ্ধ হিসাবে:

·

AddUeMeasReportConfigForAnr
(ANR -> eNodeB RRC) ANR দ্বারা পরিমাপ প্রতিবেদনের অনুরোধ করতে ব্যবহৃত
eNodeB RRC সত্তা, কাঙ্ক্ষিত রিপোর্টিং কনফিগারেশন পাস করে। দ্য
কনফিগারেশন ভবিষ্যতে সংযুক্ত UE-তে প্রয়োগ করা হবে।

·

ReportUeMeas
(eNodeB RRC -> ANR) আগে কনফিগার করা UE পরিমাপের উপর ভিত্তি করে
AddUeMeasReportConfigForAnr, UE eNodeB-তে পরিমাপ প্রতিবেদন জমা দিতে পারে।
eNodeB RRC সত্তা ব্যবহার করে ReportUeMeas এই ফরওয়ার্ড করার জন্য ইন্টারফেস
ANR-কে পরিমাপ প্রতিবেদন।

অনুগ্রহ করে এর জন্য সংশ্লিষ্ট API ডকুমেন্টেশন পড়ুন LteAnrSap আরো বিস্তারিত জানার জন্য ক্লাস
ব্যবহার এবং প্রয়োজনীয় পরামিতিগুলির উপর।

ANR কে eNodeB RRC ইন্সট্যান্স দ্বারা ডেটা স্ট্রাকচার হিসাবে ব্যবহার করা হয়
কাছাকাছি প্রতিবেশী কোষের অবস্থা। এছাড়াও ANR eNodeB RRC উদাহরণকে সাহায্য করে
প্রতিবেশী কক্ষে হস্তান্তর পদ্ধতি চালানো সম্ভব কিনা তা নির্ধারণ করুন।
এটি এই সত্য দ্বারা উপলব্ধি করা হয়েছে যে eNodeB RRC শুধুমাত্র একটি হস্তান্তর পদ্ধতির অনুমতি দেবে
টার্গেট সেলের NR এন্ট্রিতে উভয়ই থাকলে ঘটবে না HO এবং না X2 ক্ষেত্র সেট মিথ্যা.

সিমুলেশনের প্রতিটি eNodeB উদাহরণে ডিফল্টরূপে ANR সক্রিয় থাকে। এটা নিষ্ক্রিয় করা যেতে পারে
সেট করে AnrEnabled বৈশিষ্ট্য LteHelper ক্লাস থেকে মিথ্যা.

আর সি ক্রম ডায়াগ্রামে
এই বিভাগে আমরা কিছু সিকোয়েন্স ডায়াগ্রাম প্রদান করি যা সবচেয়ে গুরুত্বপূর্ণ RRC ব্যাখ্যা করে
পদ্ধতি মডেল করা হচ্ছে।

আর সি সংযোগ সংস্থা
ব্যক্তিত্ব ক্রম নকশা of দ্য আর সি সংযোগ সংস্থা কার্যপ্রণালী দেখায় কিভাবে RRC
সংযোগ স্থাপনের পদ্ধতিটি মডেল করা হয়েছে, এতে RRC স্তরের ভূমিকা হাইলাইট করা হয়েছে
UE এবং eNB উভয়ই, সেইসাথে অন্যান্য স্তরগুলির সাথে মিথস্ক্রিয়া।
[ছবি] RRC সংযোগ স্থাপন পদ্ধতির সিকোয়েন্স ডায়াগ্রাম। UNINDENT

এই পদ্ধতির সাথে সম্পর্কিত বেশ কয়েকটি সময়সীমা রয়েছে, যা নীচে তালিকাভুক্ত করা হয়েছে
টেবিল টাইমার in আর সি সংযোগ সংস্থা কার্যপ্রণালী. যদি এই টাইমারগুলির কোনোটির মেয়াদ শেষ হয়ে যায়,
RRC সংযোগ স্থাপন পদ্ধতি ব্যর্থ হলে সমাপ্ত হয়। এই ক্ষেত্রে, দ
উপরের স্তর (UE NAS) অবিলম্বে প্রক্রিয়াটি সম্পূর্ণ না হওয়া পর্যন্ত পুনরায় চেষ্টা করার চেষ্টা করবে
সফলভাবে।

টাইমার in আর সি সংযোগ সংস্থা কার্যপ্রণালী
┌ ---
│নাম │ অবস্থান │ টাইমার শুরু হয় │ টাইমার থামে │ ডিফল্ট │ কখন টাইমার │
│ │ │ │ │ সময়কাল │ মেয়াদ শেষ │
├ ─────────────┼─────────┼────────────
│সংযোগ │ eNodeB RRC │ নতুন UE প্রসঙ্গ │ RRC প্রাপ্ত করুন │ 15 ms │ UE সরান │
│অনুরোধ │ │ যোগ করা হয়েছে │ সংযোগ │ │ প্রসঙ্গ │
│টাইমআউট │ │ │ অনুরোধ │ │ │
├ ─────────────┼─────────┼────────────
│সংযোগ │ UE RRC │ RRC পাঠান │ RRC প্রাপ্ত করুন │ 100 ms │ UE MAC রিসেট করুন │
│টাইমআউট (T300 │ │ সংযোগ │ সংযোগ │ │ │
│টাইমার) │ │ অনুরোধ │ সেটআপ বা │ │ │
│ │ │ │ প্রত্যাখ্যান │ │ │
├ ─────────────┼─────────┼────────────
│সংযোগ │ eNodeB RRC │ RRC পাঠান │ RRC পান │ 100 ms │ UE সরান │
│সেটআপের সময়সীমা │ │ সংযোগ │ সংযোগ │ │ প্রসঙ্গ │
│ │ │ সেটআপ │ সেটআপ সম্পূর্ণ │ │ │
├ ─────────────┼─────────┼────────────
│সংযোগ │ eNodeB RRC │ RRC পাঠান │ কখনও │ 30 ms │ UE সরান │
│প্রত্যাখ্যাত │ │ সংযোগ │ │ │ প্রসঙ্গ │
│টাইমআউট │ │ প্রত্যাখ্যান │ │ │ │
└ -

আর সি সংযোগ পুনরায় সেটআপ
ব্যক্তিত্ব ক্রম নকশা of দ্য আর সি সংযোগ পুনর্বিন্যাস কার্যপ্রণালী দেখায় কিভাবে RRC
সংযোগ পুনঃবিন্যাস পদ্ধতিটি মোবিলিটি কন্ট্রোল ইনফো যেখানে রয়েছে সেই ক্ষেত্রে মডেল করা হয়েছে
প্রদান করা হয় না, অর্থাৎ হস্তান্তর করা হয় না।
[ছবি] RRC সংযোগ পুনর্বিন্যাস পদ্ধতির সিকোয়েন্স ডায়াগ্রাম।UNINDENT

ব্যক্তিত্ব ক্রম নকশা of দ্য আর সি সংযোগ পুনর্বিন্যাস কার্যপ্রণালী উন্নত দ্য হস্তান্তর
কেস দেখায় কিভাবে RRC সংযোগ পুনর্বিন্যাস পদ্ধতি কেসের জন্য মডেল করা হয়
যেখানে মোবিলিটি কন্ট্রোল ইনফো প্রদান করা হয়, অর্থাৎ হস্তান্তর করা হয়। যেমন বলা আছে
[TS36331]-এ, পর গ্রহণ দ্য হস্তান্তর বার্তা, দ্য UE প্রচেষ্টা থেকে প্রবেশ দ্য লক্ষ্য
কোষ at দ্য প্রথম সহজলভ্য RACH উপলক্ষ অনুযায়ী থেকে এলোমেলো প্রবেশ সংস্থান নির্বাচন
সংজ্ঞায়িত in [TS36321]_, অর্থাত দ্য হস্তান্তর is অ্যাসিঙ্ক্রোনাস অতএব, কখন বরাদ্দ
a নিবেদিত প্রস্তাবনা উন্নত দ্য এলোমেলো প্রবেশ in দ্য লক্ষ্য কোষ, ই-উট্রা হইবে নিশ্চিত করা it is
সহজলভ্য থেকে দ্য প্রথম RACH উপলক্ষ দ্য UE may ব্যবহার করুন। উপরে সফল পরিপূরণ of দ্য
হস্তান্তর, দ্য UE পাঠায় a বার্তা ব্যবহৃত থেকে নিশ্চিত করা দ্য হস্তান্তর. উল্লেখ্য যে এলোমেলো
এই ক্ষেত্রে অ্যাক্সেস পদ্ধতি অ-বিরোধ ভিত্তিক, তাই এটি একটি বাস্তব LTE সিস্টেমে
প্রতিষ্ঠিত RRC সংযোগে ব্যবহৃত একটি থেকে সামান্য ভিন্ন। আরও উল্লেখ্য যে, আর.এ
প্রস্তাবনা আইডি X2 হ্যান্ডওভার অনুরোধে অন্তর্ভুক্ত হ্যান্ডওভার কমান্ডের মাধ্যমে সংকেত করা হয়
টার্গেট eNB থেকে উৎস eNB-তে ACK বার্তা পাঠানো হয়েছে; বিশেষ করে, প্রস্তাবনা হল
RACH-ConfigDedicated IE-তে অন্তর্ভুক্ত যা MobilityControlInfo-এর অংশ।
[ছবি] এর জন্য RRC সংযোগ পুনর্বিন্যাস পদ্ধতির সিকোয়েন্স ডায়াগ্রাম
হস্তান্তর মামলা.UNINDENT

আর সি প্রোটোকল মডেল
পূর্বে প্রত্যাশিত হিসাবে, আমরা ট্রান্সমিশন এবং জন্য দুটি ভিন্ন মডেল প্রদান
RRC বার্তা গ্রহণ: আদর্শ এবং বাস্তব. তাদের প্রত্যেকের একটিতে বর্ণনা করা হয়েছে
নিম্নলিখিত উপধারা.

আদর্শ আর সি প্রোটোকল মডেল
এই মডেল অনুযায়ী, ক্লাসে প্রয়োগ করা হয় এবং LteUeRrcProtocolIdeal এবং
LteEnbrRrcProtocolIdeal, সমস্ত RRC বার্তা এবং তথ্য উপাদান মধ্যে প্রেরণ করা হয়
eNB এবং UE একটি আদর্শ ফ্যাশনে, রেডিও রিসোর্স ব্যবহার না করে এবং ছাড়া
ত্রুটি বাস্তবায়নের দৃষ্টিকোণ থেকে, এটি RRC ডেটা পাস করে অর্জন করা হয়
নীচের স্তরগুলিকে জড়িত না করে সরাসরি UE এবং eNB RRC সত্তার মধ্যে গঠন
(PDCP, RLC, MAC, শিডিউলার)।

বাস্তব আর সি প্রোটোকল মডেল
এই মডেলটি ক্লাসে প্রয়োগ করা হয় LteUeRrcProtocolReal এবং LteEnbrRrcProtocolReal
এবং লক্ষ্য হল RRC PDU-এর ট্রান্সমিশন মডেলিং করা যা সাধারণত বাস্তব LTE-তে সম্পাদিত হয়
সিস্টেম নির্দিষ্টভাবে:

· প্রতিটি RRC বার্তা পাঠানোর জন্য, ASN.1 অনুসরণ করে একটি বাস্তব RRC PDU তৈরি করা হয়
[TS36331]-এ উল্লেখিত RRC PDU এবং তথ্য উপাদানের (IEs) এনকোডিং। কিছু
PDU-তে অন্তর্ভুক্ত আইই-এর ক্ষেত্রে সরলীকরণ করা হয়, অর্থাৎ শুধুমাত্র সেগুলি
সিমুলেশন উদ্দেশ্যে উপযোগী আইই অন্তর্ভুক্ত করা হয়েছে। একটি বিস্তারিত তালিকার জন্য, দয়া করে
IE গুলি সংজ্ঞায়িত দেখুন lte-rrc-sap.h এবং [TS36331] এর সাথে তুলনা করুন।

· এনকোড করা RRC PDU গুলি সিগন্যালিং রেডিও বিয়ারার্সে পাঠানো হয় এবং একই বিষয়
ডেটা যোগাযোগের জন্য ব্যবহৃত ট্রান্সমিশন মডেলিং, এইভাবে সময়সূচী, রেডিও সহ
সম্পদ খরচ, চ্যানেল ত্রুটি, বিলম্ব, পুনঃপ্রচার, ইত্যাদি

সিগনালিং রেডিও বাহক মডেল
আমরা এখন সিগন্যালিং রেডিও বেয়ারার মডেলটি বর্ণনা করি যা এর জন্য ব্যবহৃত হয় বাস্তব RRC প্রোটোকল
মডেল.

· SRB0 বার্তা (CCCH এর উপরে):

· RrcConnectionRequest: বাস্তব LTE সিস্টেমে, এটি একটি RLC TM SDU পাঠানো হয়েছে
RAR-এর UL অনুদানে নির্দিষ্ট সংস্থান (UL DCIs-এ নয়); কারণ হল যে
সি-আরএনটিআই এই পর্যায়ে এখনও জানা যায়নি। সিমুলেটরে, এটি একটি বাস্তব হিসাবে মডেল করা হয়
RLC TM RLC PDU যার UL সংস্থানগুলি কল করার সময় নির্ধারিত দ্বারা বরাদ্দ করা হয়৷
SCHED_DL_RACH_INFO_REQ.

· RrcConnectionSetup: সিমুলেটরে এটি বাস্তব এলটিই সিস্টেমের মতো বাস্তবায়িত হয়,
অর্থাৎ, একটি নিয়মিত UL DCI দ্বারা নির্দেশিত সংস্থানগুলির উপর পাঠানো একটি RLC TM SDU সহ,
SCHED_DL_RLC_BUFFER_REQ এর সাথে বরাদ্দ RLC TM দৃষ্টান্ত দ্বারা ট্রিগার করা হয় যা হল
LCID 0 (CCCH) এ ম্যাপ করা হয়েছে।

· SRB1 বার্তা (DCCH এর উপর):

· সমস্ত SRB1 বার্তা সিমুলেটরে মডেল করা হয়েছে (যেমন, RrcConnection Completed) হয়
বাস্তব এলটিই সিস্টেমের মতো বাস্তবায়িত হয়, অর্থাত্, একটি বাস্তব RLC SDU এর সাথে RLC AM এর মাধ্যমে পাঠানো হয়
বাফার স্ট্যাটাস রিপোর্টের মাধ্যমে বরাদ্দকৃত ডিএল সম্পদ ব্যবহার করে। RLC মডেল দেখুন
বিস্তারিত তথ্যের জন্য ডকুমেন্টেশন।

· SRB2 বার্তা (DCCH এর উপর):

· [TS36331] অনুসারে, "SRB1 is উন্নত আর সি বার্তা (যা may অন্তর্ভুক্ত করা a
পিগিব্যাকড ন্যাস বার্তা) as ভাল as উন্নত ন্যাস বার্তা পূর্বে থেকে দ্য সংস্থা
of SRB2, সব ব্যবহার DCCH যৌক্তিক চ্যানেল", যেখানে"SRB2 is উন্নত ন্যাস বার্তা,
ব্যবহার DCCH যৌক্তিক চ্যানেল" এবং "SRB2 হয়েছে a নিম্ন অগ্রাধিকার চেয়ে SRB1 এবং is
সর্বদা কনফিগার by ই-ইউট্রান পরে নিরাপত্তা সক্রিয়করণ". মডেলিং
নিরাপত্তা-সম্পর্কিত দিকগুলি LTE সিমুলেশন মডেলের প্রয়োজন নয়,
তাই আমরা সবসময় SRB1 ব্যবহার করি এবং SRB2 সক্রিয় করি না।

ASN.1 এনকোডিং of আর সি IE এর
RRC SAP-তে সংজ্ঞায়িত বার্তাগুলি, সকল Ue/Enb SAP ব্যবহারকারী/প্রদানকারীদের জন্য সাধারণ, পরিবহণ করা হয়
একটি Ue/Enb থেকে/থেকে একটি স্বচ্ছ পাত্রে। বিভিন্ন জন্য এনকোডিং বিন্যাস
তথ্য উপাদানগুলি [TS36331]-এ নির্দিষ্ট করা হয়েছে, ASN.1 নিয়মগুলি অসংগঠিতভাবে ব্যবহার করে
বৈকল্পিক Ns3/Lte-এ বাস্তবায়নকে নিম্নলিখিত শ্রেণীতে ভাগ করা হয়েছে:

· Asn1Header : মৌলিক ASN প্রকারের এনকোডিং/ডিকোডিং ধারণ করে

· RrcAsn1Header : Asn1Header ইনহেরিট করে এবং সাধারণের এনকোডিং/ডিকোডিং ধারণ করে
IE এর সংজ্ঞায়িত [TS36331]

· RRC নির্দিষ্ট বার্তা/IEs ক্লাস : RRC-তে সংজ্ঞায়িত প্রতিটি বার্তার জন্য একটি ক্লাস
SAP হেডার

Asn1 হেডার শ্রেণী - বাস্তবায়ন of ভিত্তি ASN.1 ধরনের
এই শ্রেণীতে ব্যবহৃত ASN.1 প্রকারগুলিকে সিরিয়ালাইজ/ডিসিরিয়ালাইজ করার পদ্ধতি প্রয়োগ করা হয়
[TS36331], ITU-T X.691-এ প্যাকড এনকোডিং নিয়ম অনুযায়ী। বিবেচিত ধরনের
হয়:

· বুলিয়ান : একটি বুলিয়ান মান একটি একক বিট ব্যবহার করে (1=সত্য, 0 = মিথ্যা)।

· পূর্ণসংখ্যা : একটি সীমাবদ্ধ পূর্ণসংখ্যা (ন্যূনতম এবং সর্বোচ্চ মান সংজ্ঞায়িত) সর্বনিম্ন ব্যবহার করে
এর পরিসর এনকোড করার জন্য বিটের পরিমাণ (সর্বোচ্চ-মিনিট+1)।

· বিটস্ট্রিং : সিরিয়ালাইজেশন বাফারে একটি বিস্ট্রিং একটু একটু করে কপি করা হবে।

· Octetstring: বর্তমানে ব্যবহার করা হচ্ছে না।

· ক্রম: ক্রমটি ঐচ্ছিক এবং এর উপস্থিতি নির্দেশ করে একটি প্রস্তাবনা তৈরি করে
ডিফল্ট ক্ষেত্র। এটি এক্সটেনশন মার্কারের উপস্থিতি নির্দেশ করে কিছুটা যোগ করে।

· ক্রম...অফ: অনুক্রম...টাইপের অনুক্রমের উপাদানের সংখ্যা এনকোড করে
একটি পূর্ণসংখ্যা হিসাবে (পরবর্তী উপাদানগুলিকে পরে এনকোড করতে হবে)।

· পছন্দ : পছন্দ সেটের মধ্যে কোন উপাদানটি এনকোড করা হচ্ছে তা নির্দেশ করে।

· গণনা : একটি পূর্ণসংখ্যা হিসাবে ক্রমিক করা হয় যা নির্দেশ করে যে কোন মান ব্যবহার করা হয়েছে, এর মধ্যে
গণনার মধ্যে একটি, উপরের হিসাবে গণনার উপাদানগুলির সংখ্যা সহ
আবদ্ধ.

· নাল : নাল মান এনকোড করা হয় না, যদিও এর সিরিয়ালাইজেশন ফাংশন সংজ্ঞায়িত করা হয়
স্পেসিফিকেশন এবং বাস্তবায়নের মধ্যে একটি পরিষ্কার মানচিত্র প্রদান করতে।

ক্লাসটি ns-3 হেডার থেকে উত্তরাধিকারসূত্রে পাওয়া যায়, কিন্তু Deserialize() ফাংশনটিকে বিশুদ্ধ ভার্চুয়াল ঘোষণা করা হয়,
এইভাবে উত্তরাধিকারসূত্রে প্রাপ্ত ক্লাসগুলিকে এটি বাস্তবায়ন করতে হবে। কারণ ডিসিরিয়ালাইজেশন হবে
RRC বার্তাগুলির উপাদানগুলি পুনরুদ্ধার করুন, তাদের প্রতিটিতে বিভিন্ন তথ্য রয়েছে
উপাদান।

উপরন্তু, এটি একটি নির্দিষ্ট টাইপ/বার্তার ফলে বাইট দৈর্ঘ্য লক্ষ করা উচিত
ঐচ্ছিক ক্ষেত্রগুলির উপস্থিতি অনুসারে এবং অপ্টিমাইজ করা এনকোডিংয়ের কারণে পরিবর্তিত হতে পারে।
তাই, প্রিসেরিয়ালাইজ() ফাংশন ব্যবহার করে সিরিয়ালাইজড বিটগুলিকে সংরক্ষণ করা হবে
ফলাফল m_serialization ফলাফল বাফার. একটি ns3 বাফারে পড়া/লেখার পদ্ধতিগুলি হল
একটি বাইট ভিত্তিতে সংজ্ঞায়িত, সিরিয়ালাইজেশন বিটগুলি m_serializationPendingBits এ সংরক্ষণ করা হয়
attribute, যতক্ষণ না 8 বিট সেট করা হয় এবং বাফার ইটারেটারে লেখা যায়। অবশেষে, যখন
Serialize(), m_serializationResult বৈশিষ্ট্যের বিষয়বস্তু অনুলিপি করা হবে
বাফার::ইটারেটর প্যারামিটারে

RrcAsn1 হেডার : সাধারণ আইইএস
যেহেতু কিছু তথ্য উপাদান বেশ কিছু RRC বার্তার জন্য ব্যবহার করা হচ্ছে, এই ক্লাস
নিম্নলিখিত সাধারণ IE এর প্রয়োগ করে:

SrbToAddModList

· DrbToAddModList

লজিক্যাল চ্যানেল কনফিগারেশন

· রেডিওরিসোর্স কনফিগডেডিকেটেড

· শারীরিক কনফিগডেডিকেটেড

· সিস্টেম ইনফরমেশন ব্লক টাইপ1

· সিস্টেম ইনফরমেশন ব্লক টাইপ2

· RadioResourceConfigCommonSIB

আরআরসি নির্দিষ্ট বার্তা/আইই ক্লাস
নিম্নলিখিত RRC SAP বাস্তবায়িত হয়েছে:

· RrcConnectionRequest

· RrcConnectionSetup

· RrcConnectionSetup Completed

· RrcConnectionReconfiguration

· RrcConnectionReconfiguration Completed

হস্তান্তরের প্রস্তুতির তথ্য

· RrcConnectionReestablishment Request

· Rrc সংযোগ পুনঃস্থাপন

· Rrc সংযোগ পুনঃস্থাপন সম্পূর্ণ

· Rrc সংযোগ পুনঃস্থাপন প্রত্যাখ্যান

· RrcConnectionRelease

ন্যাস
এলটিই-ইপিসি মডেলের ফোকাস এনএএস অ্যাক্টিভ স্টেটে, যা ইএমএমের সাথে মিলে যায়
নিবন্ধিত, ECM সংযুক্ত, এবং RRC সংযুক্ত। এই কারণে, নিম্নলিখিত
সরলীকরণ করা হয়:

· EMM এবং ECM স্পষ্টভাবে মডেল করা হয় না; পরিবর্তে, UE এ NAS সত্তা করবে
এমএমই-এর সাথে সমতুল্য ক্রিয়া সম্পাদনের জন্য সরাসরি ইন্টারঅ্যাক্ট করুন (সহ
সরলীকরণ) EMM সংযুক্ত এবং ECM সংযুক্ত রাজ্যগুলিতে UE নিয়ে যাওয়া;

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

· NAS PLMN এবং CSG নির্বাচন সমর্থন করে না

· NAS নিষ্ক্রিয় মোডে অবস্থান আপডেট/পেজিং পদ্ধতি সমর্থন করে না

ব্যক্তিত্ব ক্রম নকশা of দ্য সংযুক্ত কার্যপ্রণালী দেখায় কিভাবে সরলীকৃত NAS মডেল
সংযুক্তি পদ্ধতি প্রয়োগ করে। নোট করুন যে ডিফল্ট এবং চূড়ান্ত ডেডিকেটেড EPS উভয়ই
এই পদ্ধতির অংশ হিসাবে ধারকদের সক্রিয় করা হয়।
[ছবি] সংযুক্তি পদ্ধতির ক্রম চিত্র। UNINDENT

S1
S1-U
S1-U ইন্টারফেসটি ডেটা প্যাকেটগুলিকে এনক্যাপসুলেট করে বাস্তবসম্মত উপায়ে মডেল করা হয়েছে
GTP/UDP/IP, যেমন বাস্তব LTE-EPC সিস্টেমে করা হয়। সংশ্লিষ্ট প্রোটোকল স্ট্যাক দেখানো হয়
ব্যক্তিত্ব এলটিই-ইপিসি উপাত্ত সমতল প্রোটোকল গাদা. চিত্রে দেখানো হয়েছে, দুটি ভিন্ন
আইপি নেটওয়ার্কিং এর স্তর। প্রথমটি হল এন্ড-টু-এন্ড লেয়ার, যা এন্ড-টু-এন্ড প্রদান করে
ব্যবহারকারীদের সাথে সংযোগ; এই স্তরগুলি UEs, PGW এবং দূরবর্তী হোস্ট জড়িত
(পরবর্তীতে ইন্টারনেট রাউটার এবং এর মধ্যে হোস্ট সহ), কিন্তু eNB এর সাথে জড়িত নয়।
ডিফল্টরূপে, UE গুলিকে 4/7.0.0.0 নেটওয়ার্কে একটি সর্বজনীন IPv8 ঠিকানা বরাদ্দ করা হয় এবং PGW
ঠিকানা 7.0.0.1 পায়, যা সমস্ত UE দ্বারা ইন্টারনেটে পৌঁছানোর গেটওয়ে হিসাবে ব্যবহৃত হয়।

আইপি নেটওয়ার্কিংয়ের দ্বিতীয় স্তরটি হল ইপিসি লোকাল এরিয়া নেটওয়ার্ক। এর সাথে সমস্ত eNB জড়িত
নোড এবং SGW/PGW নোড। এই নেটওয়ার্ক পয়েন্ট-টু-পয়েন্ট লিঙ্কগুলির একটি সেট হিসাবে বাস্তবায়িত হয়
যা প্রতিটি eNB কে SGW/PGW নোডের সাথে সংযুক্ত করে; এইভাবে, SGW/PGW এর একটি সেট আছে
পয়েন্ট-টু-পয়েন্ট ডিভাইস, প্রতিটি আলাদা ইএনবি-তে সংযোগ প্রদান করে। ডিফল্টরূপে, ক
10.xyz/30 সাবনেট প্রতিটি পয়েন্ট-টু-পয়েন্ট লিঙ্কে বরাদ্দ করা হয়েছে (a/30 সাবনেট সবচেয়ে ছোট
সাবনেট যা দুটি স্বতন্ত্র হোস্ট ঠিকানার জন্য অনুমতি দেয়)।

3GPP দ্বারা নির্দিষ্ট করা হয়েছে, এন্ড-টু-এন্ড আইপি কমিউনিকেশনগুলি স্থানীয় ইপিসি আইপির উপর টানেল করা হয়
GTP/UDP/IP ব্যবহার করে নেটওয়ার্ক। নিম্নলিখিত, আমরা এই টানেলিং কিভাবে বাস্তবায়িত হয় ব্যাখ্যা
ইপিসি মডেলে। ব্যাখ্যাটি ডেটার এন্ড-টু-এন্ড প্রবাহ নিয়ে আলোচনা করে করা হয়
প্যাকেট
[image] ইন্টারনেট এবং UE.UNINDENT-এর মধ্যে ডাউনলিংকে ডেটা প্রবাহ

শুরুতে, আমরা ডাউনলিংকের ক্ষেত্রে বিবেচনা করি, যা চিত্রে দেখানো হয়েছে উপাত্ত
প্রবাহ in দ্য ডাউনলিঙ্ক মধ্যে দ্য ইন্টারনেট এবং দ্য UE. ডাউনলিংক Ipv4 প্যাকেট হয়
একটি জেনেরিক রিমোট হোস্ট থেকে উৎপন্ন, এবং UE ডিভাইসের একটিতে সম্বোধন করা হয়েছে। ইন্টারনেট
রাউটিং প্যাকেটটিকে SGW/PGW-এর জেনেরিক নেট ডিভাইসে ফরোয়ার্ড করার যত্ন নেবে
নোড যা ইন্টারনেটের সাথে সংযুক্ত (এটি 3GPP অনুযায়ী Gi ইন্টারফেস
পরিভাষা)। SGW/PGW এর একটি VirtualNetDevice আছে যা গেটওয়ে আইপি বরাদ্দ করা হয়েছে
UE সাবনেটের ঠিকানা; তাই, স্ট্যাটিক রাউটিং নিয়ম ইনকামিং প্যাকেটের কারণ হবে
ইন্টারনেট থেকে এই VirtualNetDevice এর মাধ্যমে রাউট করা হবে। এই ধরনের ডিভাইস শুরু হয়
জিটিপি/ইউডিপি/আইপি টানেলিং পদ্ধতি, প্যাকেটটি একটি ডেডিকেটেড অ্যাপ্লিকেশনে ফরওয়ার্ড করে
SGW/PGW নোড যাকে EpcSgwPgwApplication বলা হয়। এই অ্যাপ্লিকেশনটি করে
নিম্নলিখিত অপারেশন:

1. এটি আইপি দেখে eNB নোড নির্ধারণ করে যার সাথে UE সংযুক্ত আছে
গন্তব্য ঠিকানা (যা UE এর ঠিকানা);

2. এটি ট্রাফিক ফ্লো টেমপ্লেট (TFTs) ব্যবহার করে প্যাকেটকে শ্রেণীবদ্ধ করে কোনটি সনাক্ত করতে
ইপিএস বহনকারী এটি অন্তর্গত। EPS ধারকদের S1-U ধারকদের সাথে এক থেকে এক ম্যাপিং আছে, তাই
এই ক্রিয়াকলাপটি GTP-U টানেল এন্ডপয়েন্ট আইডেন্টিফায়ার (TEID) প্রদান করে যেখানে
প্যাকেট অন্তর্গত;

3. এটি প্যাকেটে সংশ্লিষ্ট GTP-U প্রোটোকল হেডার যুক্ত করে;

4. অবশেষে, এটি একটি UDP সকেটের উপর দিয়ে S1-U পয়েন্ট-টু-পয়েন্টে প্যাকেট পাঠায়
NetDevice, ENB-কে সম্বোধন করা হয়েছে যেখানে UE সংযুক্ত আছে।

ফলস্বরূপ, নতুন যোগ করা আইপি, ইউডিপি এবং জিটিপি হেডার সহ এন্ড-টু-এন্ড আইপি প্যাকেট
eNB-তে S1 লিঙ্কগুলির একটির মাধ্যমে পাঠানো হয়, যেখানে এটি স্থানীয়ভাবে গৃহীত এবং বিতরণ করা হয়
(যেহেতু আউটমোস্ট আইপি হেডারের গন্তব্য ঠিকানা eNB আইপি ঠিকানার সাথে মেলে)। দ্য
স্থানীয় ডেলিভারি প্রক্রিয়া একটি UDP সকেটের মাধ্যমে প্যাকেটটিকে ডেডিকেটেডের কাছে ফরোয়ার্ড করবে
EpcEnbApplication নামক অ্যাপ্লিকেশন। এই অ্যাপ্লিকেশন তারপর নিম্নলিখিত সঞ্চালিত
কার্যক্রম:

1. এটি GTP শিরোনামটি সরিয়ে দেয় এবং এতে থাকা TEID পুনরুদ্ধার করে;

2. S1-U বাহক এবং রেডিও বাহকদের মধ্যে এক-এক-ম্যাপিং-এ (যা
এটি একটি 3GPP প্রয়োজনীয়তা), এটি প্যাকেটটি বহনকারী আইডি (BID) নির্ধারণ করে
অন্তর্গত

3. এটি EpsBearerTag নামক একটি ডেডিকেটেড ট্যাগে BID রেকর্ড করে, যা যোগ করা হয়
প্যাকেট

4. এটি একটি কাঁচা প্যাকেটের মাধ্যমে প্যাকেটটিকে eNB নোডের LteEnbNetDevice-এ ফরোয়ার্ড করে
সকেট

মনে রাখবেন, এই মুহুর্তে, প্যাকেটের সবচেয়ে বাইরের হেডার হল এন্ড-টু-এন্ড আইপি হেডার,
যেহেতু S1 প্রোটোকল স্ট্যাকের IP/UDP/GTP শিরোনামগুলি ইতিমধ্যেই ছিনতাই করা হয়েছে৷ উপর
EpcEnbApplication থেকে প্যাকেটের অভ্যর্থনা, LteEnbNetDevice পুনরুদ্ধার করবে
EpsBearerTag থেকে BID, এবং BID এর উপর ভিত্তি করে রেডিও বেয়ারার দৃষ্টান্ত নির্ধারণ করবে
(এবং সংশ্লিষ্ট PDCP এবং RLC প্রোটোকল দৃষ্টান্তগুলি) যা পরবর্তীতে ফরওয়ার্ড করতে ব্যবহৃত হয়
LTE রেডিও ইন্টারফেসের মাধ্যমে UE-তে প্যাকেট। অবশেষে, UE এর LteUeNetDevice হবে
প্যাকেটটি গ্রহণ করুন এবং স্থানীয়ভাবে আইপি প্রোটোকল স্ট্যাকে ডেলিভারি করুন, যা ঘুরে আসবে
এটিকে UE-এর অ্যাপ্লিকেশনে ডেলিভারি করুন, যা ডাউনলিংকের শেষ বিন্দু
যোগাযোগ।
[ছবি] UE এবং ইন্টারনেটের মধ্যে আপলিঙ্কে ডেটা প্রবাহ। UNINDENT

আপলিংকের ক্ষেত্রে চিত্রে দেখানো হয়েছে উপাত্ত প্রবাহ in দ্য আপলিঙ্ক মধ্যে দ্য UE এবং
দ্য ইন্টারনেট. আপলিংক আইপি প্যাকেটগুলি UE-এর ভিতরে একটি জেনেরিক অ্যাপ্লিকেশন দ্বারা তৈরি করা হয়,
এবং স্থানীয় TCP/IP স্ট্যাক দ্বারা UE-এর LteUeNetDevice-এ ফরোয়ার্ড করা হয়। দ্য
LteUeNetDevice তারপর নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করে:

1. এটি টিএফটি ব্যবহার করে প্যাকেটকে শ্রেণীবদ্ধ করে এবং রেডিও বাহক নির্ধারণ করে যা
প্যাকেটের অন্তর্গত (এবং সংশ্লিষ্ট RBID);

2. এটি সংশ্লিষ্ট PDCP প্রোটোকল দৃষ্টান্ত সনাক্ত করে, যা এর প্রবেশ বিন্দু
এই প্যাকেটের জন্য LTE রেডিও প্রোটোকল স্ট্যাক;

3. এটি এলটিই রেডিও প্রোটোকল স্ট্যাকের মাধ্যমে প্যাকেটটি eNB-তে পাঠায়।

eNB তার LteEnbNetDevice এর মাধ্যমে প্যাকেটটি গ্রহণ করে। যেহেতু একটি একক PDCP এবং RLC আছে
প্রতিটি রেডিও বাহকের জন্য প্রোটোকল উদাহরণ, LteEnbNetDevice BID নির্ধারণ করতে সক্ষম
প্যাকেটের। এই BID তারপর একটি EpsBearerTag-এ রেকর্ড করা হয়, যা যোগ করা হয়
প্যাকেট LteEnbNetDevice তারপর প্যাকেটটিকে একটি কাঁচা মাধ্যমে EpcEnbApplication এ ফরোয়ার্ড করে
প্যাকেট সকেট।

প্যাকেটটি পাওয়ার পর, EpcEnbApplication নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করে:

1. এটি প্যাকেটে থাকা EpsBearerTag থেকে BID পুনরুদ্ধার করে;

2. এটি লিভারেজ করে সংশ্লিষ্ট ইপিএস বিয়ারার ইনস্ট্যান্স এবং GTP-U TEID নির্ধারণ করে
S1-U বহনকারী এবং রেডিও ধারকদের মধ্যে এক-এক-একটি ম্যাপিং;

3. এটি প্যাকেটে একটি GTP-U শিরোনাম যোগ করে, পূর্বে নির্ধারিত TEID সহ;

4. এটি S1-U এর সাথে সংযুক্ত UDP সকেটের মাধ্যমে SGW/PGW নোডে প্যাকেট পাঠায়
পয়েন্ট টু পয়েন্ট নেট ডিভাইস।

এই মুহুর্তে, প্যাকেটটিতে S1-U IP, UDP এবং GTP হেডার ছাড়াও রয়েছে
আসল এন্ড-টু-এন্ড আইপি হেডার। প্যাকেটটি সংশ্লিষ্ট S1-U দ্বারা গ্রহণ করা হলে
SGW/PGW নোডের পয়েন্ট-টু-পয়েন্ট নেটডিভাইস, এটি স্থানীয়ভাবে বিতরণ করা হয় (গন্তব্য হিসাবে
আউটমোস্ট আইপি হেডারের ঠিকানা পয়েন্ট-টু-পয়েন্ট নেট ডিভাইসের ঠিকানার সাথে মেলে)।
স্থানীয় ডেলিভারি প্রক্রিয়া প্যাকেটটিকে EpcSgwPgwApplication এর মাধ্যমে ফরোয়ার্ড করবে
সংশ্লিষ্ট UDP সকেট। EpcSgwPgwApplication তারপর GTP হেডার এবং ফরওয়ার্ড সরিয়ে দেয়
ভার্চুয়ালনেট ডিভাইসে প্যাকেট। এই মুহুর্তে, প্যাকেটের সবচেয়ে বাইরের শিরোনামটি হল
এন্ড-টু-এন্ড আইপি হেডার। অত:পর, যদি এই হেডারের মধ্যে গন্তব্য ঠিকানা একটি দূরবর্তী হয়
ইন্টারনেটে হোস্ট, প্যাকেটটি সংশ্লিষ্ট NetDevice এর মাধ্যমে ইন্টারনেটে পাঠানো হয়
SGW/PGW এর। প্যাকেটটি অন্য UE-তে সম্বোধন করা হলে, এর আইপি স্ট্যাক
SGW/PGW প্যাকেটটিকে আবার VirtualNetDevice-এ রিডাইরেক্ট করবে এবং প্যাকেটটি যাবে
ডাউলিংক ডেলিভারি প্রক্রিয়ার মাধ্যমে এর গন্তব্য UE-এ পৌঁছানোর জন্য।

উল্লেখ্য যে EPS Bearer QoS S1-U লিঙ্কগুলিতে প্রয়োগ করা হয় না, এটা ধরে নেওয়া হয় যে
লিঙ্ক ব্যান্ডউইথের অতিরিক্ত ব্যবস্থা করা সকলের QoS প্রয়োজনীয়তা পূরণের জন্য যথেষ্ট
ধারক

S1AP
S1-AP ইন্টারফেস eNB এবং MME এর মধ্যে কন্ট্রোল প্লেন ইন্টারঅ্যাকশন প্রদান করে। মধ্যে
সিমুলেটর, এই ইন্টারফেসটি একটি আদর্শ ফ্যাশনে তৈরি করা হয়েছে, যার মধ্যে সরাসরি মিথস্ক্রিয়া রয়েছে
eNB এবং MME অবজেক্ট, আসলে S1AP বার্তাগুলির এনকোডিং বাস্তবায়ন না করেই
এবং তথ্য উপাদান নির্দিষ্ট [TS36413] এবং আসলে কোনো PDU প্রেরণ ছাড়া
যেকোনো লিঙ্কে।

S1-AP আদিম যেগুলি মডেল করা হয়েছে তা হল:

· প্রাথমিক UE বার্তা

· প্রাথমিক প্রসঙ্গ সেটআপ অনুরোধ

· প্রাথমিক প্রসঙ্গ সেটআপ প্রতিক্রিয়া

· পথ সুইচ অনুরোধ

· পথ সুইচ অনুরোধ স্বীকার

X2
X2 ইন্টারফেস দুটি eNBs [TS36420] আন্তঃসংযোগ করে। একটি যৌক্তিক দৃষ্টিকোণ থেকে, X2
ইন্টারফেস হল দুটি eNB-এর মধ্যে একটি পয়েন্ট-টু-পয়েন্ট ইন্টারফেস। একটি বাস্তব E-UTRAN-এ,
যৌক্তিক পয়েন্ট-টু-পয়েন্ট ইন্টারফেস একটি শারীরিক অনুপস্থিতিতেও সম্ভব হওয়া উচিত
দুটি eNB-এর মধ্যে সরাসরি সংযোগ। সিমুলেটরে বাস্তবায়িত X2 মডেলে,
X2 ইন্টারফেস হল দুটি eNB-এর মধ্যে একটি পয়েন্ট-টু-পয়েন্ট লিঙ্ক। একটি পয়েন্ট টু পয়েন্ট ডিভাইস হয়
উভয় eNB-তে তৈরি করা হয়েছে এবং দুটি পয়েন্ট-টু-পয়েন্ট ডিভাইস পয়েন্ট-টু-পয়েন্টের সাথে সংযুক্ত রয়েছে
লিঙ্ক।

LENA এর সামগ্রিক আর্কিটেকচারে X2 ইন্টারফেস কীভাবে ফিট করে তার একটি উপস্থাপনার জন্য
সিমুলেশন মডেল, পাঠক চিত্রে উল্লেখ করা হয় সংক্ষিপ্ত বিবরণ of দ্য এলটিই-ইপিসি ব্যাজ
মডেল.

সিমুলেটরে বাস্তবায়িত X2 ইন্টারফেস এর বিস্তারিত বাস্তবায়ন প্রদান করে
গতিশীলতা ব্যবস্থাপনা কার্যকারিতা [TS36423] এর প্রাথমিক পদ্ধতিগুলি অনুসরণ করে:

হস্তান্তর অনুরোধ পদ্ধতি

হস্তান্তর অনুরোধ স্বীকৃতি পদ্ধতি

· SN স্ট্যাটাস ট্রান্সফার পদ্ধতি

· UE প্রসঙ্গ রিলিজ পদ্ধতি

এই পদ্ধতিগুলি X2-ভিত্তিক হস্তান্তরের সাথে জড়িত। আপনি বিস্তারিত খুঁজে পেতে পারেন
[TS10.1.2.1] এর 36300 ধারায় হস্তান্তরের বিবরণ। আমরা যে সিমুলেটর নোট
মডেল বর্তমানে শুধুমাত্র সমর্থন করে নির্বিঘ্ন হস্তান্তর এর ধারা 2.6.3.1-এ সংজ্ঞায়িত করা হয়েছে
[সেসিয়া2009]; নির্দিষ্টভাবে, অবচয়হীন হস্তান্তর এর ধারা 2.6.3.2-এ বর্ণিত
[Sesia2009] এই লেখার সময় সমর্থিত নয়।

ব্যক্তিত্ব ক্রম নকশা of দ্য X2-ভিত্তিক হস্তান্তর নীচের মিথস্ক্রিয়া দেখায়
সিমুলেটরে X2 মডেলের সত্তা। ছায়াযুক্ত লেবেলগুলি সেই মুহুর্তগুলি নির্দেশ করে যখন
UE বা eNodeB অন্য আরআরসি অবস্থায় স্থানান্তর।
[ছবি] X2-ভিত্তিক হস্তান্তরের সিকোয়েন্স ডায়াগ্রাম।UNINDENT

চিত্রটি হস্তান্তর পদ্ধতির মধ্যে দুটি টাইমারও দেখায়: হস্তান্তর ছোড়
সময় নির্ণায়ক উৎস eNodeB দ্বারা রক্ষণাবেক্ষণ করা হয়, যখন হস্তান্তর যোগদান সময় নির্ণায়ক লক্ষ্য দ্বারা
eNodeB. টাইমারের সময়কাল এতে কনফিগার করা যেতে পারে
হ্যান্ডওভারলিভিং টাইমআউট সময়কাল এবং হস্তান্তর যোগদানের সময়সীমা বৈশিষ্ট্য
নিজ নিজ LteEnbrRrc উদাহরণ এই টাইমারগুলির মধ্যে একটির মেয়াদ শেষ হলে, হস্তান্তর পদ্ধতি
ব্যর্থ হিসাবে বিবেচিত হয়।

যাইহোক, LTE-এর বর্তমান সংস্করণে হ্যান্ডওভার ব্যর্থতার কোন সঠিক ব্যবস্থাপনা নেই
মডিউল হস্তান্তর ব্যর্থতা এড়াতে ব্যবহারকারীদের সিমুলেশনটি সঠিকভাবে টিউন করা উচিত,
অন্যথায় অপ্রত্যাশিত আচরণ ঘটতে পারে। অনুগ্রহ করে অনুচ্ছেদ পড়ুন
এই সংক্রান্ত কিছু টিপসের জন্য ব্যবহারকারী ডকুমেন্টেশনের sec-tuning-handover-simulation
ব্যাপার।

X2 মডেল হল এমন একটি সত্তা যা থেকে পরিষেবাগুলি ব্যবহার করে:

· X2 ইন্টারফেস,

এগুলি পয়েন্ট-টু-পয়েন্ট ডিভাইসের উপরে সকেট হিসাবে প্রয়োগ করা হয়।

· এগুলি X2-C এবং X2-U ইন্টারফেসের মাধ্যমে X2 বার্তা পাঠাতে/গ্রহণ করতে ব্যবহৃত হয়
(অর্থাৎ পয়েন্ট-টু-পয়েন্ট ডিভাইসটি পয়েন্ট-টু-পয়েন্ট লিঙ্কের সাথে সংযুক্ত) এর দিকে
পিয়ার eNB.

· S1 অ্যাপ্লিকেশন।

· বর্তমানে, এটি EpcEnbঅ্যাপ্লিকেশন।

· এটি X2 এর প্রাথমিক প্রক্রিয়াগুলির জন্য প্রয়োজনীয় কিছু তথ্য পেতে ব্যবহৃত হয়
বার্তা।

এবং এটি পরিষেবা প্রদান করে:

· RRC সত্তা (X2 SAP)

· RRC বার্তা পাঠাতে/গ্রহণ করতে। X2 সত্তা স্বচ্ছ হিসাবে RRC বার্তা পাঠায়
X2 বার্তার ধারক। এই RRC বার্তাটি UE-তে পাঠানো হয়।

ব্যক্তিত্ব বাস্তবায়ন মডেল of X2 সত্তা এবং এসএপি X2 এর ইমপ্লেন্টেশন মডেল দেখায়
সত্তা এবং প্রোটোকলের অন্যান্য সমস্ত সংস্থা এবং পরিষেবাগুলির সাথে এর সম্পর্ক
স্ট্যাক।
[ছবি] X2 সত্তা এবং SAPs.UNINDENT এর বাস্তবায়ন মডেল

RRC সত্তা হস্তান্তর পদ্ধতির সূচনা পরিচালনা করে। এই কাজ করা হয়
eNB RRC সত্তার হ্যান্ডওভার ম্যানেজমেন্ট সাবমডিউল। লক্ষ্য eNB কিছু সম্পাদন করতে পারে
ভর্তি নিয়ন্ত্রণ পদ্ধতি। এটি ভর্তি নিয়ন্ত্রণ সাবমডিউলে করা হয়।
প্রাথমিকভাবে, এই সাবমডিউল যেকোনো হস্তান্তরের অনুরোধ গ্রহণ করবে।

X2 ইন্টারফেসগুলি
X2 মডেলটিতে দুটি ইন্টারফেস রয়েছে:

· X2-C ইন্টারফেস। এটি নিয়ন্ত্রণ ইন্টারফেস এবং এটি X2-AP PDU পাঠাতে ব্যবহৃত হয়
(অর্থাৎ প্রাথমিক পদ্ধতি)।

· X2-U ইন্টারফেস। যখন থাকে তখন এটি বহনকারী ডেটা পাঠাতে ব্যবহৃত হয় DL ফরওয়ার্ডিং.

ব্যক্তিত্ব X2 ইন্টারফেস প্রোটোকল স্ট্যাকগুলি X2-U ইন্টারফেসের প্রোটোকল স্ট্যাক দেখায় এবং
সিমুলেটরে মডেল করা X2-C ইন্টারফেস।
[ছবি] X2 ইন্টারফেস প্রোটোকল স্ট্যাকস। UNINDENT

X2-C
X2-C ইন্টারফেস হল X2 ইন্টারফেসের নিয়ন্ত্রণ অংশ এবং এটি পাঠাতে ব্যবহৃত হয়
X2-AP PDUs (অর্থাৎ প্রাথমিক পদ্ধতি)।

মূল X2 ইন্টারফেস কন্ট্রোল প্লেন প্রোটোকল স্ট্যাকে, SCTP পরিবহন হিসাবে ব্যবহৃত হয়
প্রোটোকল কিন্তু বর্তমানে, SCTP প্রোটোকল ns-3 সিমুলেটরে মডেল করা হয় না এবং এর
বাস্তবায়ন প্রকল্পের সুযোগের বাইরে। UDP প্রোটোকল ডেটাগ্রাম হিসাবে ব্যবহৃত হয়
SCTP প্রোটোকলের পরিবর্তে ওরিয়েন্টেড প্রোটোকল।

X2-U
X2-U ইন্টারফেসটি যখন থাকে তখন বহনকারী ডেটা পাঠাতে ব্যবহৃত হয় DL ফরওয়ার্ডিং সময় সময়
X2-ভিত্তিক হস্তান্তর পদ্ধতির সঞ্চালন। একইভাবে S1-U এর জন্য যা করা হয়েছে
ইন্টারফেস, ডেটা প্যাকেটগুলি GTP/UDP/IP-এর উপর এনক্যাপসুলেট করা হয় যখন এটি পাঠানো হয়
ইন্টারফেস. মনে রাখবেন যে EPS Bearer QoS X2-U লিঙ্কগুলিতে প্রয়োগ করা হয় না, এটি ধরে নেওয়া হয়
যে লিঙ্ক ব্যান্ডউইথের অতিরিক্ত ব্যবস্থা করা QoS প্রয়োজনীয়তা পূরণের জন্য যথেষ্ট
সব ধারকদের

X2 সেবা ইন্টারফেস
X2 পরিষেবা ইন্টারফেস RRC সত্তা X2-এর বার্তা পাঠাতে এবং গ্রহণ করতে ব্যবহার করে
পদ্ধতি এটি দুটি অংশে বিভক্ত:

· দ্য EpcX2SapProvider অংশটি X2 সত্তা দ্বারা সরবরাহ করা হয় এবং RRC সত্তা দ্বারা ব্যবহৃত হয় এবং

· দ্য EpcX2SapUser অংশটি RRC সত্তা দ্বারা সরবরাহ করা হয় এবং RRC সত্তা দ্বারা ব্যবহৃত হয়।

আমাদের X2-C মডেলে সমর্থিত আদিমগুলি নীচে বর্ণিত হয়েছে৷
উপধারা

X2-C আদিম উন্নত হস্তান্তর ফাঁসি
X2-ভিত্তিক হস্তান্তরের জন্য নিম্নলিখিত আদিম ব্যবহার করা হয়:

হস্তান্তরের অনুরোধ

হ্যান্ডওভার অনুরোধ ACK

হস্তান্তর প্রস্তুতি ব্যর্থতা

· এসএন স্ট্যাটাস ট্রান্সফার

· UE কনটেক্সট রিলিজ

উপরোক্ত সমস্ত আদিম বর্তমানে বাস্তবায়িত RRC মডেল দ্বারা ব্যবহৃত হয়
হস্তান্তর পদ্ধতির প্রস্তুতি এবং সম্পাদন। তাদের ব্যবহার RRC এর সাথে যোগাযোগ করে
রাষ্ট্রীয় যন্ত্র; তাই, এগুলি অন্তত কোড কাস্টমাইজেশনের জন্য ব্যবহার করার জন্য নয়
যদি না এটি RRC স্টেট মেশিন পরিবর্তন করতে চায়।

X2-C পুত্র আদিম
স্ব-সংগঠিত নেটওয়ার্ক (SON) বাস্তবায়নের জন্য নিম্নলিখিত আদিম ব্যবহার করা যেতে পারে
কার্যকারিতা:

· লোড তথ্য

· রিসোর্স স্ট্যাটাস আপডেট

নোট করুন যে বর্তমান RRC মডেল আসলে এই আদিম ব্যবহার করে না, সেগুলি অন্তর্ভুক্ত করা হয়েছে
মডেলটিতে শুধুমাত্র RRC যুক্তিতে অন্তর্ভুক্ত SON অ্যালগরিদমগুলি বিকাশ করা সম্ভব করে তোলে
যে তাদের ব্যবহার.

প্রথম উদাহরণ হিসাবে, আমরা এখানে দেখাই কিভাবে লোড তথ্য আদিম ব্যবহার করা যেতে পারে। আমরা মনে করি
যে LteEnbrRrc নিম্নলিখিত নতুন সদস্য ভেরিয়েবলগুলি অন্তর্ভুক্ত করার জন্য সংশোধন করা হয়েছে:

std:: ভেক্টর
m_currentUlInterferenceOverloadIndicationList;
std:: ভেক্টর
m_currentUlHighInterferenceInformationList;
EpcX2Sap::RelativeNarrowbandTxBand m_currentRelativeNarrowbandTxBand;

এই ভেরিয়েবলের প্রকারের বিশদ বিবরণের জন্য, আমরা ফাইলের সাথে পরামর্শ করার পরামর্শ দিই
epc-x2-sap.h, সংশ্লিষ্ট ডক্সিজেন ডকুমেন্টেশন, এবং এর মধ্যে রেফারেন্স
3GPP TS 36.423 এর প্রাসঙ্গিক বিভাগ। এখন, অনুমান করুন যে রান টাইমে এই ভেরিয়েবল আছে
উল্লেখিত স্পেসিফিকেশন অনুসরণ করে অর্থপূর্ণ মান নির্ধারণ করা হয়েছে। তারপর তুমি পারো
একটি লোড পাঠানোর জন্য LteEnbrRrc ক্লাস বাস্তবায়নে নিম্নলিখিত কোড যোগ করুন
তথ্য আদিম:

EpcX2Sap::CellInformationItem cii;
cii.sourceCellId = m_cellId;
cii.ulInterferenceOverloadIndicationList = m_currentUlInterferenceOverloadIndicationList;
cii.ulHighInterferenceInformationList = m_currentUlHighInterferenceInformationList;
cii.relativeNarrowbandTxBand = m_currentRelativeNarrowbandTxBand;

EpcX2Sap::LoadInformationParams params;
params.targetCellId = cellId;
params.cellInformationList.push_back (cii);
m_x2SapProvider->SendLoadInformation (params);

উপরের কোডটি উৎস eNB কে বার্তা পাঠাতে দেয়। পদ্ধতি
LteEnbrRrc::DoRecvLoadInformation যখন টার্গেট eNB বার্তা পাবে তখন কল করা হবে।
লোড তথ্যের পছন্দসই প্রক্রিয়াকরণ তাই এর মধ্যে বাস্তবায়ন করা উচিত
পদ্ধতি।

নিম্নলিখিত দ্বিতীয় উদাহরণে আমরা দেখাই কিভাবে রিসোর্স স্ট্যাটাস আপডেট আদিম ব্যবহার করা হয়।
আমরা অনুমান করি যে নিম্নলিখিত নতুন সদস্যদের অন্তর্ভুক্ত করার জন্য LteEnbrRrc সংশোধন করা হয়েছে
পরিবর্তনশীল:

EpcX2Sap::CellMeasurementResultItem m_cmri;

আগের মতই, আমরা উল্লেখ করি epc-x2-sap.h এবং বিস্তারিত জানার জন্য তার মধ্যে রেফারেন্স
এই পরিবর্তনশীল টাইপ সম্পর্কে তথ্য। আবার, আমরা ধরে নিই যে পরিবর্তনশীলটি ইতিমধ্যেই হয়েছে
একটি অর্থপূর্ণ মান সেট করুন। তারপর, আপনি একটি পাঠাতে নিম্নলিখিত কোড যোগ করতে পারেন
সম্পদ অবস্থা আপডেট:

EpcX2Sap::ResourceStatusUpdateParams params;
params.targetCellId = cellId;
params.cellMeasurementResultList.push_back (m_cmri);
m_x2SapProvider->SendResourceStatusUpdate (params);

পদ্ধতি eEnbrRrc::DoRecvResourceStatusUpdate যখন টার্গেট eNB পাবে তখন কল করা হবে
সম্পদ অবস্থা আপডেট বার্তা. এই বার্তার পছন্দসই প্রক্রিয়াকরণ করা উচিত
তাই যে পদ্ধতির মধ্যে বাস্তবায়ন করা হবে.

পরিশেষে, আমরা লক্ষ্য করি যে উপযুক্ত মানগুলির সেটিং এবং প্রক্রিয়াকরণের জন্য
উপরোক্ত বর্ণিত আদিমদের কাছে পাঠানো পরিবর্তনশীলকে SON-এর নির্দিষ্ট বলে মনে করা হয়
অ্যালগরিদম প্রয়োগ করা হচ্ছে, এবং তাই এই ডকুমেন্টেশন দ্বারা আচ্ছাদিত নয়।

অসমর্থিত আদিম
গতিশীলতা দৃঢ়তা অপ্টিমাইজেশান আদিম যেমন রেডিও লিঙ্ক ব্যর্থতার ইঙ্গিত এবং
হস্তান্তর রিপোর্ট এই পর্যায়ে সমর্থিত নয়.

S11
S11 ইন্টারফেস SGW এবং MME এর মধ্যে কন্ট্রোল প্লেন ইন্টারঅ্যাকশন প্রদান করে
GTPv2-C প্রোটোকল [TS29274] এ নির্দিষ্ট করা হয়েছে। সিমুলেটরে, এই ইন্টারফেস একটি মডেল করা হয়
আদর্শ ফ্যাশন, SGW এবং MME বস্তুর মধ্যে সরাসরি মিথস্ক্রিয়া সহ, ছাড়া
প্রকৃতপক্ষে বার্তাগুলির এনকোডিং বাস্তবায়ন করা এবং প্রকৃতপক্ষে কোনো প্রেরণ না করে
PDU যেকোনো লিঙ্কে।

S11 আদিম যেগুলি মডেল করা হয়েছে তা হল:

সেশনের অনুরোধ তৈরি করুন

· সেশন প্রতিক্রিয়া তৈরি করুন

· বাহক অনুরোধ সংশোধন করুন

· বাহক প্রতিক্রিয়া সংশোধন করুন

এই আদিমগুলির মধ্যে, প্রথম দুটি প্রাথমিক UE সংযুক্তির জন্য ব্যবহৃত হয়
S1-U বহনকারীদের প্রতিষ্ঠা; অন্য দুটি হস্তান্তরের সময় ব্যবহার করা হয় সুইচ করতে
S1-U বাহক উৎস eNB থেকে টার্গেট eNB পর্যন্ত অভ্যর্থনার ফলস্বরূপ
একটি PATH সুইচ অনুরোধ S1-AP বার্তার MME।

ক্ষমতা নিয়ন্ত্রণ
এই বিভাগে ডাউনলিংক এবং আপলিংক পাওয়ার কন্ট্রোলের ns-3 বাস্তবায়ন বর্ণনা করা হয়েছে।

ডাউনলিংক ক্ষমতা নিয়ন্ত্রণ
যেহেতু কিছু ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদমের ডাউনলিংক পাওয়ার কন্ট্রোল প্রয়োজন, এই বৈশিষ্ট্যটি ছিল
ns-3 এও বাস্তবায়িত হয়েছে।
[ছবি] ডাউনলিঙ্ক পাওয়ার কন্ট্রোলের সিকোয়েন্স ডায়াগ্রাম।UNINDENT

ব্যক্তিত্ব ক্রম নকশা of ডাউনলিংক ক্ষমতা নিয়ন্ত্রণ সেটিং এর সিকোয়েন্স ডায়াগ্রাম দেখায়
UE এর জন্য ডাউনলিংক P_A মান, RRC এবং অন্যের মধ্যে মিথস্ক্রিয়া হাইলাইট করে
সত্তা FR অ্যালগরিদম UE-এর জন্য P_A মান পরিবর্তন করতে RRC ট্রিগার করে। তারপর আরআরসি শুরু হয়
RrcConnectionReconfiguration ফাংশন UE কে নতুন কনফিগারেশন সম্পর্কে জানাতে। পরে
সফল RrcConnectionReconfiguration, RRC কল করে UE-এর জন্য P_A মান সেট করতে পারে
CphySap থেকে SetPa ফাংশন, মানটি নতুন মানচিত্রে সংরক্ষিত হয় m_paMap যাতে P_A মান রয়েছে
eNb দ্বারা পরিবেশিত প্রতিটি UE এর জন্য।

যখন LteEnbPhy নতুন সাবফ্রেম শুরু করে, তখন ভেক্টর পেতে DCI নিয়ন্ত্রণ বার্তাগুলি প্রক্রিয়া করা হয়
ব্যবহৃত RBs। এখন GeneratePowerAllocationMap(uint16_t rnti, int rbId) ফাংশনটিও
ডাকা এই ফাংশনটি UE-এর জন্য P_A মান পরীক্ষা করে, প্রতিটি RB-এর জন্য শক্তি তৈরি করে এবং এটি সংরক্ষণ করে
m_dlPowerAllocationMap. তারপর এই মানচিত্র দ্বারা ব্যবহার করা হয়
CreateTxPowerSpectralDensityWithPowerAllocation ফাংশন Ptr তৈরি করতে
txPsd.

PdschConfigDedicated (TS 36.331, 6.3.2 PDSCH-Config) যোগ করা হয়েছিল
LteRrcSap::PhysicalConfigDedicated struct, যা RrcConnectionReconfiguration এ ব্যবহৃত হয়
প্রক্রিয়া।

আপলিংক ক্ষমতা নিয়ন্ত্রণ
আপলিংক পাওয়ার কন্ট্রোল বিভিন্ন আপলিংক ফিজিক্যালের ট্রান্সমিট পাওয়ার নিয়ন্ত্রণ করে
চ্যানেল এই কার্যকারিতা 3GPP TS 36.213 সেকশন 5 এ বর্ণিত হয়েছে।

আপলিংক পাওয়ার কন্ট্রোল ডিফল্টরূপে সক্রিয় থাকে এবং অ্যাট্রিবিউট সিস্টেম দ্বারা নিষ্ক্রিয় করা যেতে পারে:

Config::SetDefault ("ns3::LteUePhy::EnableUplinkPowerControl", BooleanValue (false));

দুটি আপলিঙ্ক পাওয়ার কন্ট্রোল মেকানিজম প্রয়োগ করা হয়েছে:

· ওপেন লুপ আপলিংক পাওয়ার কন্ট্রোল: UE ট্রান্সমিশন পাওয়ার অনুমানের উপর নির্ভর করে
ডাউনলিংক পাথ-লস এবং চ্যানেল কনফিগারেশন

· ক্লোজড লুপ আপলিংক পাওয়ার কন্ট্রোল: ওপেন লুপের মতো, এছাড়াও eNB UE নিয়ন্ত্রণ করতে পারে
স্পষ্ট ট্রান্সমিট পাওয়ার কন্ট্রোল TPC কমান্ডের মাধ্যমে ট্রান্সমিশন পাওয়ার
ডাউনলিংকে প্রেরণ করা হয়েছে।

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

Config::SetDefault ("ns3::LteUePowerControl::ClosedLoop", BooleanValue (true));

ডিফল্টরূপে, ক্লোজড লুপ পাওয়ার কন্ট্রোল সক্ষম।

দুই মোড of বন্ধ লুপ আপলিংক ক্ষমতা নিয়ন্ত্রণ হয় উপলব্ধ:

· পরম মোড: TxPower পরম TPC মান দিয়ে গণনা করা হয়

· সঞ্চয়কারী মোড: TxPower জমাকৃত TPC মানগুলির সাথে গণনা করা হয়

এই দুটি মোডের মধ্যে স্যুইচ করতে, একজনের পরামিতি পরিবর্তন করা উচিত:

Config::SetDefault ("ns3::LteUePowerControl::Accumulation Enabled", BooleanValue (true));

ডিফল্টরূপে, সঞ্চয় মোড সক্রিয় থাকে এবং DL-DCI-তে TPC কমান্ডগুলি সকলের দ্বারা সেট করা হয়
শিডিউলারগুলি 1-এ, যা 0-এর মানকে সঞ্চয় মোডে ম্যাপ করা হয়।

আপলিংক ক্ষমতা নিয়ন্ত্রণ উন্নত পুশ
ফিজিক্যাল আপলিংক শেয়ার্ড চ্যানেলের (PUSCH) জন্য UE ট্রান্সমিট পাওয়ারের সেটিং
সংক্রমণ নিম্নরূপ সংজ্ঞায়িত করা হয়:

· যদি UE সার্ভিং সেল c-এর জন্য যুগপৎ PUCCH ছাড়াই PUSCH প্রেরণ করে, তাহলে
UE ট্রান্সমিট পাওয়ার P_{PUSCH,c}(i) সাবফ্রেমে PUSCH ট্রান্সমিশনের জন্য
পরিবেশন কোষ c দ্বারা দেওয়া হয়:

· যদি UE সার্ভিং সেল c এর জন্য PUCCH এর সাথে PUSCH একযোগে প্রেরণ করে, তাহলে UE
ট্রান্সমিট পাওয়ার P_{PUSCH,c}(i) সাবফ্রেমে PUSCH ট্রান্সমিশনের জন্য
পরিবেশন কোষ c দ্বারা দেওয়া হয়:

যেহেতু PUCCH এর জন্য আপলিংক পাওয়ার কন্ট্রোল বাস্তবায়িত নয়, এই ক্ষেত্রে বাস্তবায়িত হয় না
যেমন.

· যদি UE সার্ভিং সেল c এর জন্য PUSCH প্রেরণ না করে,
PUSCH এর জন্য DCI ফরম্যাট 3/3A সহ TPC কমান্ড প্রাপ্ত হয়েছে, UE ধরে নেবে যে UE
ট্রান্সমিট পাওয়ার P_{PUSCH,c}(i) সাবফ্রেমে PUSCH ট্রান্সমিশনের জন্য
সার্ভিং সেল c দ্বারা গণনা করা হয়

কোথায়:

· P_{CMAX,c}(i) হল কনফিগার করা UE ট্রান্সমিট পাওয়ার যা 3GPP 36.101-এ সংজ্ঞায়িত করা হয়েছে। টেবিল
6.2.2-1 সেল c পরিবেশনের জন্য সাবফ্রেমে i এবং {P}_{CMAX,c}(i) হল রৈখিক মান
P_{CMAX,c}(i) এর মধ্যে। P_{CMAX,c}(i) এর ডিফল্ট মান হল 23 dBm

· M_{PUSCH,c}(i) হল PUSCH রিসোর্স অ্যাসাইনমেন্টের ব্যান্ডউইথ
সাবফ্রেম i এবং সার্ভিং সেল c-এর জন্য বৈধ রিসোর্স ব্লকের সংখ্যা।

· P_{O_PUSCH,c}(j) একটি উপাদানের যোগফল দিয়ে গঠিত একটি প্যারামিটার
P_{O_NOMINAL_PUSCH,c}(j) j={0,1} এবং একটি উপাদানের জন্য উচ্চতর স্তরগুলি থেকে সরবরাহ করা হয়েছে
P_{O_UE_PUSCH,c}(j) সেল c পরিবেশনের জন্য j={0,1} এর জন্য উচ্চতর স্তর দ্বারা সরবরাহ করা হয়েছে।
SIB2 বার্তা এই দুটি উপাদান বহন করার জন্য প্রসারিত করা প্রয়োজন, কিন্তু বর্তমানে
তারা বৈশিষ্ট্য সিস্টেমের মাধ্যমে সেট করা যেতে পারে:

Config::SetDefault ("ns3::LteUePowerControl::PoNominalPusch", IntegerValue (-90));
Config::SetDefault ("ns3::LteUePowerControl::PoUePusch", IntegerValue (7));

· lpha_{c} (j) হল একটি 3-বিট প্যারামিটার যা ightinForelj=2 এর জন্য উচ্চতর স্তর দ্বারা সরবরাহ করা হয়,
t 0,1, 0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 এ j=1, lpha_c এর জন্য
lpha_{c} (j) = 1. এই প্যারামিটারটি অ্যাট্রিবিউট সিস্টেম দ্বারা কনফিগারযোগ্য:

Config::SetDefault ("ns3::LteUePowerControl::Alpha", DoubleValue (0.8));

· PL_{c} হল ডাউনলিংক প্যাথলস অনুমান যা UE তে সেল c পরিবেশনের জন্য গণনা করা হয়
dB এবং PL_{c} = referenceSignalPower-এ উচ্চতর স্তর ফিল্টার করা RSRP, যেখানে
রেফারেন্স সিগন্যাল পাওয়ার উচ্চতর স্তর এবং RSRP দ্বারা সরবরাহ করা হয়। রেফারেন্স সিগন্যাল পাওয়ার
SIB2 বার্তায় প্রদান করা হয়

· এবং কনড কেস বাস্তবায়িত হয়।

· f_{c}(i) হল ক্লোজড লুপ পাওয়ার কন্ট্রোলের উপাদান। এটি বর্তমান PUSCH শক্তি
সেল পরিবেশন জন্য নিয়ন্ত্রণ সমন্বয় অবস্থা গ.

সঞ্চয় মোড সক্ষম হলে f_{c}(i) দ্বারা দেওয়া হয়:

যেখানে: elta_{PUSCH,c} একটি সংশোধন মান, এটি একটি TPC কমান্ড হিসাবেও উল্লেখ করা হয়
এবং DCI-এর সাথে PDCCH-এর অন্তর্ভুক্ত; elta_{PUSCH,c}(i - K_{PUSCH}) চালু করা হয়েছে
সাবফ্রেমে সেল সি পরিবেশনের জন্য DCI সহ PDCCH/EPDCCH (i - K_{PUSCH}); K_{PUSCH} =
FDD এর জন্য 4.

যদি UE সেল সি পরিবেশনের জন্য P_{CMAX,c}(i) এ পৌঁছে যায়, তাহলে এর জন্য ইতিবাচক TPC কমান্ড
পরিবেশন সেল গ জমা করা হয় না. যদি UE ন্যূনতম শক্তিতে পৌঁছেছে, ঋণাত্মক
TPC কমান্ড জমা করা হয় না. ন্যূনতম UE শক্তি TS36.101 এ সংজ্ঞায়িত করা হয়েছে
ধারা 6.2.3. ডিফল্ট মান হল -40 dBm।

সঞ্চয় মোড সক্ষম না হলে f_{c}(i) দ্বারা দেওয়া হয়:

যেখানে: elta_{PUSCH,c} একটি সংশোধন মান, এটি একটি TPC কমান্ড হিসাবেও উল্লেখ করা হয়
এবং DCI-এর সাথে PDCCH-এর অন্তর্ভুক্ত; elta_{PUSCH,c}(i - K_{PUSCH}) চালু করা হয়েছে
সাবফ্রেমে সেল সি পরিবেশনের জন্য DCI সহ PDCCH/EPDCCH (i - K_{PUSCH}); K_{PUSCH} =
FDD এর জন্য 4.

ডিসিআই ফরম্যাটে TPC কমান্ড ফিল্ডের ম্যাপিং 0/3/4 পরম এবং জমা করা
elta_{PUSCH,c} মান TS36.231 বিভাগ 5.1.1.1 টেবিল 5.1.1.1-2 এ সংজ্ঞায়িত করা হয়েছে

আপলিংক ক্ষমতা নিয়ন্ত্রণ উন্নত PUCCH
যেহেতু সমস্ত আপলিংক নিয়ন্ত্রণ বার্তা একটি আদর্শ বার্তা এবং কোনো রেডিও ব্যবহার করে না
সম্পদ, PUCCH এর জন্য আপলিংক পাওয়ার কন্ট্রোলের প্রয়োজন নেই এবং এটি বাস্তবায়িত হয় না।

আপলিংক ক্ষমতা নিয়ন্ত্রণ উন্নত এসআরএস
সাবফ্রেম i-এ প্রেরিত SRS-এর জন্য UE ট্রান্সমিট পাওয়ার P_{SRS} এর সেটিং
পরিবেশন সেল c দ্বারা সংজ্ঞায়িত করা হয়

কোথায়:

· P_{CMAX,c}(i) হল কনফিগার করা UE ট্রান্সমিট পাওয়ার যা 3GPP 36.101-এ সংজ্ঞায়িত করা হয়েছে। টেবিল
6.2.2-1। P_{CMAX,c}(i) এর ডিফল্ট মান হল 23 dBm

· P_{SRS_OFFSET,c}(m) m=0,1 এর জন্য উচ্চতর স্তর দ্বারা আধা-স্ট্যাটিকভাবে কনফিগার করা হয়েছে
পরিবেশন কোষ গ. SRS ট্রান্সমিশনের জন্য ট্রিগার টাইপ 0 তারপর m=0,1 এবং SRS-এর জন্য
ট্রান্সমিশন দেওয়া ট্রিগার টাইপ 1 তারপর m=1। K_{s} = 0 P_Srs_Offset_Value-এর জন্য
সমীকরণের সাথে গণনা করা হয়েছে:

এই প্যারামিটারটি অ্যাট্রিবিউট সিস্টেম দ্বারা কনফিগারযোগ্য:

Config::SetDefault ("ns3::LteUePowerControl::PsrsOffset", IntegerValue (7));

· M_{SRS,c} হল সাবফ্রেম i-এ SRS ট্রান্সমিশনের ব্যান্ডউইথ হল সার্ভিং সেলের জন্য
গ রিসোর্স ব্লকের সংখ্যায় প্রকাশ করে। বর্তমান বাস্তবায়নে এসআরএস পাঠানো হয়
পুরো ইউএল ব্যান্ডউইথের উপর।

· f_{c}(i) হল বর্তমান PUSCH পাওয়ার কন্ট্রোল অ্যাডজাস্টমেন্ট স্টেট যা সেল সি পরিবেশন করার জন্য,
হিসাবে সংজ্ঞায়িত আপলিংক ক্ষমতা নিয়ন্ত্রণ উন্নত পুশ

· P_{O_PUSCH,c}(j) এবং lpha_{c}(j) হল পরামিতি যেমন সংজ্ঞায়িত করা হয়েছে আপলিংক ক্ষমতা
নিয়ন্ত্রণ উন্নত পুশ, যেখানে j = 1।

টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার
সংক্ষিপ্ত বিবরণ
এই বিভাগটি ফ্র্যাকশনাল ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদমের জন্য ns-3 সমর্থন বর্ণনা করে। সব
বাস্তবায়িত অ্যালগরিদমগুলি [ASHamza2013] এ বর্ণনা করা হয়েছে। বর্তমানে 7টি এফআর অ্যালগরিদম রয়েছে
বাস্তবায়িত:

· ns3::LteFrNoOpঅ্যালগরিদম

· ns3::LteFrHard অ্যালগরিদম

· ns3::LteFrStrict অ্যালগরিদম

· ns3::LteFrSoft অ্যালগরিদম

· ns3::LteFfrSoft অ্যালগরিদম

· ns3::LteFfrএনহ্যান্সড অ্যালগরিদম

· ns3::LteFfrDistributedAlgorithm

নতুন LteFfrAlgorithm ক্লাস তৈরি করা হয়েছে এবং এটি ফ্রিকোয়েন্সি পুনঃব্যবহারের জন্য একটি বিমূর্ত শ্রেণী
অ্যালগরিদম বাস্তবায়ন। এছাড়াও, FR-শিডিউলার এবং FR-RRC-এর মধ্যে দুটি নতুন SAP যোগ করা হয়েছে৷
[ছবি] এফআর অ্যালগরিদমের সাথে সময় নির্ধারণের সিকোয়েন্স ডায়াগ্রাম। UNINDENT

ব্যক্তিত্ব ক্রম নকশা of পূর্বপরিকল্পনা সঙ্গে FR অ্যালগরিদম এর ক্রম চিত্র দেখায়
এফআর অ্যালগরিদম সহ সময়সূচী প্রক্রিয়া। সময়সূচী প্রক্রিয়ার শুরুতে, সময়সূচী
উপলব্ধ RBGs জন্য FR সত্তা জিজ্ঞাসা. বাস্তবায়ন অনুযায়ী FR সব RBG প্রদান করে
কক্ষে উপলব্ধ বা এর নীতির উপর ভিত্তি করে সেগুলি ফিল্টার করুন৷ তারপর কিছু বরাদ্দ করার চেষ্টা করার সময়
RBG থেকে UE, সময়সূচী FR সত্তাকে জিজ্ঞাসা করে যে এই RBG এই UE-এর জন্য অনুমোদিত কিনা। যখন FR ফিরে আসে
সত্য, শিডিউলকারী এই UE-তে এই RBG বরাদ্দ করতে পারে, যদি না হয় সময়সূচী অন্য RBG পরীক্ষা করছে
এই UE এর জন্য। আবার, FR প্রতিক্রিয়া UE-তে প্রয়োগ করা বাস্তবায়ন এবং নীতির উপর নির্ভর করে।

সমর্থিত FR আলগোরিদিম
না ফ্রিকোয়েন্সি পুনঃব্যবহার
NoOp FR অ্যালগরিদম (LteFrNoOpAlgorithm ক্লাস) হল সম্পূর্ণ ফ্রিকোয়েন্সি পুনঃব্যবহারের বাস্তবায়ন
স্কিম, মানে একই নেটওয়ার্কের eNB-এর মধ্যে কোনো ফ্রিকোয়েন্সি পার্টিশন করা হয় না
(ফ্রিকোয়েন্সি রিইউজ ফ্যাক্টর, FRF সমান 1)। eNBs সম্পূর্ণ সিস্টেম ব্যান্ডউইথ ব্যবহার করে এবং প্রেরণ করে
সমস্ত RBG-এর উপর অভিন্ন শক্তি সহ। এটি সবচেয়ে সহজ স্কিম এবং এর মৌলিক উপায়
একটি LTE নেটওয়ার্ক পরিচালনা করে। এই স্কিমটি উচ্চ পিক ডেটা রেট অর্জনের অনুমতি দেয়। কিন্তু
অন্যদিকে, প্রতিবেশী কোষ, কোষ-প্রান্ত থেকে ভারী হস্তক্ষেপের মাত্রার কারণে
ব্যবহারকারীদের কর্মক্ষমতা ব্যাপকভাবে সীমিত.

ব্যক্তিত্ব পূর্ণ ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা নীচে সম্পূর্ণ জন্য ফ্রিকোয়েন্সি এবং পাওয়ার প্ল্যান উপস্থাপন করে
ফ্রিকোয়েন্সি পুনঃব্যবহারের স্কিম।
[ছবি] সম্পূর্ণ ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিম।UNINDENT

ns-3-এ, NoOp FR অ্যালগরিদম সর্বদা সময়সূচীকে সম্পূর্ণ ব্যান্ডউইথ ব্যবহার করার অনুমতি দেয় এবং অনুমতি দেয়
যেকোনো RBG ব্যবহার করার জন্য সমস্ত UE. এটি কেবল নতুন কিছু করে না (অর্থাৎ এটি eNB সীমাবদ্ধ করে না
ব্যান্ডউইথ, এফআর অ্যালগরিদম নিষ্ক্রিয় করা হয়েছে), এটি FrAlgorithm এর সবচেয়ে সহজ বাস্তবায়ন
ক্লাস এবং ডিফল্টরূপে eNb তে ইনস্টল করা হয়।

কঠিন ফ্রিকোয়েন্সি পুনঃব্যবহার
হার্ড ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম সহজতম স্কিম প্রদান করে যা কমাতে দেয়
আন্তঃকোষ হস্তক্ষেপ স্তর। এই স্কিমে পুরো ফ্রিকোয়েন্সি ব্যান্ডউইথকে ভাগ করা হয়েছে
কয়েকটি (সাধারণত 3, 4, বা 7) সাব-ব্যান্ডগুলিকে বিচ্ছিন্ন করে। সংলগ্ন eNBs বিভিন্ন সঙ্গে বরাদ্দ করা হয়
সাব-ব্যান্ড ফ্রিকোয়েন্সি রিইউজ ফ্যাক্টর সাব-ব্যান্ডের সংখ্যার সমান। এই স্কিম অনুমতি দেয়
তাৎপর্যপূর্ণভাবে সেল প্রান্তে আইসিআই হ্রাস করে, তাই সেল-ব্যবহারকারীদের কর্মক্ষমতা উন্নত হয়।
কিন্তু প্রকৃতপক্ষে, প্রতিটি eNB সম্পূর্ণ ব্যান্ডউইথের শুধুমাত্র একটি অংশ ব্যবহার করে, সর্বোচ্চ ডেটা রেট
পুনঃব্যবহারের ফ্যাক্টরের সমান ফ্যাক্টর দ্বারাও স্তরটি হ্রাস পায়।

ব্যক্তিত্ব কঠিন ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা নীচে হার্ডের জন্য ফ্রিকোয়েন্সি এবং পাওয়ার প্ল্যান উপস্থাপন করে
ফ্রিকোয়েন্সি পুনঃব্যবহারের স্কিম।
[ছবি] হার্ড ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিম।UNINDENT

আমাদের বাস্তবায়নে, হার্ড এফআর অ্যালগরিদমে শুধুমাত্র eNB-এর জন্য উপলব্ধ RBG-এর ভেক্টর রয়েছে
এবং সময় নির্ধারণ ফাংশন সময় এটি MAC সময়সূচী পাস. যখন সময়সূচী জিজ্ঞাসা, যদি RBG হয়
নির্দিষ্ট UE এর জন্য অনুমোদিত এটি সর্বদা সত্য ফিরে আসে।

যথাযথ ফ্রিকোয়েন্সি পুনঃব্যবহার
কঠোর ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিম হল সম্পূর্ণ এবং হার্ড ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিমগুলির সমন্বয়। এটা
সিস্টেম ব্যান্ডউইথকে দুটি অংশে ভাগ করে যা আলাদা থাকবে
ফ্রিকোয়েন্সি পুনঃব্যবহার। সিস্টেম ব্যান্ডউইথের একটি সাধারণ সাব-ব্যান্ড প্রতিটি কোষের অভ্যন্তরে ব্যবহৃত হয়
(ফ্রিকোয়েন্সি পুনঃব্যবহার-1), ব্যান্ডউইথের অন্যান্য অংশের মধ্যে ভাগ করা হয়
হার্ড ফ্রিকোয়েন্সি পুনঃব্যবহারের মতো প্রতিবেশী eNBs (ফ্রিকোয়েন্সি পুনঃব্যবহার-N, N>1), তৈরি করার জন্য
প্রতিটি সেক্টরে কম ইন্টার-সেল হস্তক্ষেপের স্তর সহ একটি সাব-ব্যান্ড। কেন্দ্র UEs হবে
সম্পূর্ণরূপে-পুনঃব্যবহৃত ফ্রিকোয়েন্সি খণ্ডগুলির সাথে মঞ্জুর করা হয়, যখন অরটোগোনাল খণ্ডগুলির সাথে সেল-এজ UEs।
এর মানে হল যে একটি কোষের অভ্যন্তরীণ UEগুলি প্রান্তের UEগুলির সাথে কোনও বর্ণালী ভাগ করে না
দ্বিতীয় কোষ, যা উভয়ের জন্য হস্তক্ষেপ হ্রাস করে। যেমন লক্ষ্য করা যায়, কঠোর FR-এর প্রয়োজন a
মোট N + 1 সাব-ব্যান্ড, এবং 1 এবং 3 এর মাঝখানে RFR অর্জন করতে দেয়।

ব্যক্তিত্ব যথাযথ ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা নীচে স্ট্রিক্টের জন্য ফ্রিকোয়েন্সি এবং পাওয়ার প্ল্যান উপস্থাপন করে
N = 3 এর একটি সেল-এজ রিইউজ ফ্যাক্টর সহ ফ্রিকোয়েন্সি রিইউজ স্কিম।
[ছবি] কঠোর ফ্রিকোয়েন্সি পুনঃব্যবহারের স্কিম। UNINDENT

আমাদের বাস্তবায়নে, কঠোর FR অ্যালগরিদমের দুটি মানচিত্র রয়েছে, প্রতিটি সাব-ব্যান্ডের জন্য একটি। যদি UE
ব্যক্তিগত সাব-ব্যান্ডের মধ্যে পরিবেশন করা যেতে পারে, এর RNTI m_privateSubBandUe মানচিত্রে যোগ করা হয়েছে। যদি
UE সাধারণ সাব-ব্যান্ডের মধ্যে পরিবেশন করা যেতে পারে, এর RNTI m_commonSubBandUe মানচিত্রে যোগ করা হয়েছে।
কোন সাব-ব্যান্ড UE পরিবেশন করা হবে তার মধ্যে কঠোর FR অ্যালগরিদমকে সিদ্ধান্ত নিতে হবে। এটি ব্যবহার করে
RRB দ্বারা প্রদত্ত UE পরিমাপ এবং সিগন্যাল মানের থ্রেশহোল্ডের সাথে তাদের তুলনা করুন (এটি
প্যারামিটার সহজেই বৈশিষ্ট্য প্রক্রিয়া দ্বারা টিউন করা যেতে পারে)। থ্রেশহোল্ড উপর প্রভাব আছে
অভ্যন্তর থেকে কোষের ব্যাসার্ধের অনুপাত।

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

SFR স্কিমের দুটি সম্ভাব্য সংস্করণ রয়েছে:

· প্রথম সংস্করণে, সেল-এজ UE-এর জন্য নিবেদিত সাব-ব্যান্ডও ব্যবহার করা যেতে পারে
সেল-সেন্টার UEs কিন্তু কম পাওয়ার লেভেল সহ এবং শুধুমাত্র যদি এটি দ্বারা দখল করা না হয়
কোষ-প্রান্ত UEs. সেল-সেন্টার সাব-ব্যান্ড শুধুমাত্র কেন্দ্র UE-এর জন্য উপলব্ধ। চিত্র
কোমল ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা সংস্করণ 1 নীচে ফ্রিকোয়েন্সি এবং পাওয়ার প্ল্যান উপস্থাপন করে
সফট ফ্রিকোয়েন্সি রিইউজ স্কিমের এই সংস্করণ।
[ছবি] নরম ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিম সংস্করণ 1.UNINDENT

· দ্বিতীয় সংস্করণে, সেল-সেন্টার UE-এর সেল-এজ সাব-ব্যান্ডে অ্যাক্সেস নেই। ভিতরে
এইভাবে, প্রতিটি সেল সম্পূর্ণ সিস্টেম ব্যান্ডউইথ ব্যবহার করতে পারে যখন হ্রাস করে
প্রতিবেশীদের কোষে হস্তক্ষেপ। অন্যদিকে, নিম্ন আইসিআই স্তরে
কম স্পেকট্রাম ব্যবহারের খরচে সেল-এজ অর্জন করা হয়। চিত্র কোমল
ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা সংস্করণ 2 নীচে এই জন্য ফ্রিকোয়েন্সি এবং শক্তি পরিকল্পনা উপস্থাপন
সফ্ট ফ্রিকোয়েন্সি রিইউজ স্কিমের সংস্করণ।
[ছবি] নরম ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিম সংস্করণ 2.UNINDENT

SFR অ্যালগরিদম দুটি মানচিত্র বজায় রাখে। যদি UE নিম্ন শক্তি স্তরের সঙ্গে পরিবেশন করা উচিত, তার
RNTI m_lowPowerSubBandUe মানচিত্রে যোগ করা হয়েছে। যদি UE উচ্চ ক্ষমতা দিয়ে পরিবেশন করা উচিত
স্তর, এর RNTI m_highPowerSubBandUe মানচিত্রে যোগ করা হয়েছে। কোন শক্তি স্তর সঙ্গে সিদ্ধান্ত নিতে
UE পরিবেশন করা উচিত SFR অ্যালগরিদম UE পরিমাপ ব্যবহার, এবং তাদের তুলনা
প্রান্তিক অভ্যন্তরীণ জন্য সংকেত গুণমান থ্রেশহোল্ড এবং PdschConfigDedicated (যেমন P_A মান)
এবং বাইরের এলাকা বৈশিষ্ট্য সিস্টেম দ্বারা কনফিগার করা যেতে পারে. SFR ডাউনলিঙ্ক পাওয়ার ব্যবহার করে
নিয়ন্ত্রণ এখানে বর্ণিত.

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

ব্যক্তিত্ব কোমল টুকরার ন্যায় টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা নীচে ফ্রিকোয়েন্সি উপস্থাপন করে এবং
নরম ভগ্নাংশ ফ্রিকোয়েন্সি পুনঃব্যবহারের জন্য শক্তি পরিকল্পনা।
[ছবি] নরম ভগ্নাংশ ভগ্নাংশ ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিম.UNINDENT

বর্ধিত টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার
[ZXie2009] এ বর্ণিত বর্ধিত ফ্র্যাকশনাল ফ্রিকোয়েন্সি পুনঃব্যবহার (EFFR) 3টি সেল-টাইপ সংজ্ঞায়িত করে
একটি সেলুলার সিস্টেমে সরাসরি প্রতিবেশী কোষের জন্য, এবং প্রতিটি সেল-টাইপ a এর জন্য রিজার্ভ
নামের পুরো ফ্রিকোয়েন্সি ব্যান্ডের অংশ প্রাথমিক রেখাংশ, যা বিভিন্ন ধরনের কোষের মধ্যে
অর্থোগোনাল হতে হবে। অবশিষ্ট সাবচ্যানেল গঠন মাধ্যমিক রেখাংশ. দ্য
প্রাথমিক রেখাংশ একটি সেল-টাইপ একই সময়ে একটি অংশ মাধ্যমিক খন্ডাংশ
অন্য দুটি কোষ-প্রকারের অন্তর্গত। প্রতিটি সেল এর সমস্ত সাবচ্যানেল দখল করতে পারে প্রাথমিক
রেখাংশ ইচ্ছামত, যেখানে সাবচ্যানেলের শুধুমাত্র একটি অংশ মাধ্যমিক রেখাংশ ব্যবহার করা যেতে পারে
একটি হস্তক্ষেপ-সচেতন পদ্ধতিতে এই কোষ দ্বারা প্রাথমিক রেখাংশ প্রতিটি কোষ বিভক্ত করা হয়
একটি পুনঃব্যবহার-3 অংশ এবং পুনঃব্যবহার-1 অংশে। পুনঃব্যবহার-1 অংশটি সব ধরনের কোষ দ্বারা পুনরায় ব্যবহার করা যেতে পারে
সিস্টেমে, যেখানে পুনঃব্যবহার -3 অংশ শুধুমাত্র অন্য একই ধরনের দ্বারা একচেটিয়াভাবে পুনঃব্যবহার করা যেতে পারে
কোষ (অর্থাৎ reuse-3 সাবচ্যানেল সরাসরি প্রতিবেশী কোষ দ্বারা পুনরায় ব্যবহার করা যাবে না)। চালু
দ্য মাধ্যমিক রেখাংশ সেল একটি গেস্ট হিসাবে কাজ করে, এবং সেকেন্ডারি সাবচ্যানেল দখল করে
প্রকৃতপক্ষে সরাসরি প্রতিবেশী কোষগুলির সাথে সম্পর্কিত প্রাথমিক সাবচ্যানেলগুলি পুনরায় ব্যবহার করুন, এইভাবে
উপর পুনরায় ব্যবহার মাধ্যমিক রেখাংশ প্রতিটি কোষ দ্বারা দুটি নিয়ম মেনে চলতে হবে:

· ব্যবহারের আগে মনিটর

SINR অনুমানের উপর ভিত্তি করে সম্পদ পুনঃব্যবহার

প্রতিটি সেল সব সময় প্রতিটি সেকেন্ডারি সাবচ্যানেলে শোনে। এবং দখল আগে, এটা
সংগৃহীত চ্যানেল মানের তথ্য (CQI) অনুযায়ী SINR মূল্যায়ন করে এবং
পুনঃব্যবহারের জন্য সর্বোত্তম অনুমান মান সহ সম্পদ নির্বাচন করে। যদি RBG-এর জন্য CQI মান উপরে হয়
কিছু ব্যবহারকারীর জন্য কনফিগার করা থ্রেশহোল্ড, এই ব্যবহারকারীর জন্য সংক্রমণ এটি ব্যবহার করে সঞ্চালিত হতে পারে
আরবিজি।

[ZXie2009] সময়সূচী প্রক্রিয়া বর্ণনা করা হয়েছে, এটি তিনটি ধাপ এবং দুটি নিয়ে গঠিত
সময়সূচী নীতি. যেহেতু বর্তমানে বাস্তবায়িত শিডিউলারের কেউ এটির অনুমতি দেয় না
আচরণ, কিছু সরলীকরণ প্রয়োগ করা হয়েছিল। আমাদের বাস্তবায়নে পুনঃব্যবহার-1 সাবচ্যানেল করতে পারেন
শুধুমাত্র সেল সেন্টার ব্যবহারকারীদের দ্বারা ব্যবহার করা হবে. পুনঃব্যবহার-3 সাবচ্যানেলগুলি প্রান্ত ব্যবহারকারীদের দ্বারা ব্যবহার করা যেতে পারে, এবং শুধুমাত্র
কোন প্রান্ত ব্যবহারকারী না থাকলে, সেল সেন্টার ব্যবহারকারীদের জন্য ট্রান্সমিশন পুনঃব্যবহার-3 এ পরিবেশন করা যেতে পারে
সাবচ্যানেল

ব্যক্তিত্ব বর্ধিত টুকরার ন্যায় টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা নীচে ফ্রিকোয়েন্সি উপস্থাপন করে এবং
বর্ধিত ভগ্নাংশ ফ্রিকোয়েন্সি পুনঃব্যবহারের জন্য শক্তি পরিকল্পনা।
[ছবি] উন্নত ভগ্নাংশ ভগ্নাংশের ফ্রিকোয়েন্সি পুনঃব্যবহার স্কিম।UNINDENT

বণ্টিত টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার
এই ডিস্ট্রিবিউটেড ফ্র্যাকশনাল ফ্রিকোয়েন্সি রিইউজ অ্যালগরিদম [DKimura2012]-এ উপস্থাপিত হয়েছিল। এটা
ব্যবহারকারী বন্টনের উপর ফোকাস করে সেল-এজ সাব-ব্যান্ডগুলি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করে (in
বিশেষ করে, পাওয়ার-পাওয়ার ডিস্ট্রিবিউশন)। এই অ্যালগরিদম অভিযোজিতভাবে এর জন্য RB নির্বাচন করে
সেল-এজ সাব-ব্যান্ড সংলগ্ন কোষ থেকে সমন্বয় তথ্যের ভিত্তিতে এবং বিজ্ঞপ্তি দেয়
সংলগ্ন কক্ষগুলির বেস স্টেশনগুলি, যেটিকে এটি এজ সাব-ব্যান্ডে ব্যবহার করার জন্য RBs নির্বাচন করেছে৷
প্রতিটি কক্ষের বেস স্টেশন প্রাপ্ত তথ্য এবং নিম্নলিখিত সমীকরণ ব্যবহার করে
প্রতিটি RB-এর জন্য সেল-এজ-ব্যান্ড মেট্রিক A_{k} গণনা করুন।

যেখানে J হল প্রতিবেশী কোষের একটি সেট, X_{j,k}=0,1 হল j-তম প্রতিবেশী কোষ থেকে RNTP।
এটি 1 এর মান নেয় যখন j-তম প্রতিবেশী কক্ষে k-th RB একটি সেল-এজ হিসাবে ব্যবহৃত হয়
সাব-ব্যান্ড এবং অন্যথায় 0। চিহ্ন w_{j} সংলগ্ন কক্ষ j এর সাপেক্ষে ওজন বোঝায়,
অর্থাৎ, ব্যবহারকারীর সংখ্যা যার জন্য সংকেতের শক্তির মধ্যে পার্থক্য
সার্ভিং সেল i থেকে প্রাপ্ত এবং সংলগ্ন থেকে প্রাপ্ত সিগন্যালের শক্তি
সেল j একটি থ্রেশহোল্ড মানের চেয়ে কম (অর্থাৎ, সেল প্রান্তের কাছাকাছি ব্যবহারকারীর সংখ্যা
সার্ভিস সেল)। একটি বড় প্রাপ্ত ক্ষমতা পার্থক্য মানে হল যে i-th মধ্যে সেল-এজ ব্যবহারকারীরা
কোষ জ-ম কোষ থেকে শক্তিশালী হস্তক্ষেপ ভোগ করে।

যে RB মেট্রিক A_{k} সবচেয়ে ছোট তাকে সবচেয়ে কম প্রভাবিত বলে মনে করা হয়
অন্য কোষ থেকে হস্তক্ষেপ। সার্ভিং সেল একটি কনফিগার করা সংখ্যক RB নির্বাচন করে
A_{k} এর আরোহী ক্রমে সেল-এজ সাব-ব্যান্ড। ফলস্বরূপ, আরবিগুলি যার মধ্যে একটি ছোট
সেল-এজ ব্যবহারকারীদের সংখ্যা সংলগ্ন বেস স্টেশন থেকে উচ্চ হস্তক্ষেপ গ্রহণ করে
নির্বাচন করেছেন।

আপডেট করা RNTP তারপর সমস্ত প্রতিবেশী কক্ষে পাঠানো হয়। যাতে অর্থহীন এড়ানো যায়
সেল-এজ-ব্যান্ড নির্বাচনের দোলন, একটি বেস স্টেশন অন্য বেস থেকে একটি RNTP উপেক্ষা করে
যে স্টেশনে বেস স্টেশনের চেয়ে বড় সেল আইডি রয়েছে।

সমস্ত কোষ জুড়ে এই প্রক্রিয়াটি পুনরাবৃত্তি করা কোষ-প্রান্তের অঞ্চলে RB-এর বরাদ্দ সক্ষম করে
সিস্টেমে অপ্টিমাইজ করা এবং ব্যবহারকারী বন্টনের পরিবর্তনের সাথে সামঞ্জস্য করা।

ব্যক্তিত্ব ক্রম নকশা of বণ্টিত ফ্রিকোয়েন্সি পুনঃব্যবহার পরিকল্পনা নীচে ক্রম উপস্থাপন
ডিস্ট্রিবিউটেড ফ্র্যাকশনাল ফ্রিকোয়েন্সি রিইউজ স্কিমের ডায়াগ্রাম।
[ছবি] ডিস্ট্রিবিউটেড ফ্রিকোয়েন্সি রিইউজ স্কিমের সিকোয়েন্স ডায়াগ্রাম।UNINDENT

সাহায্যকারী
সিমুলেশন সেটআপ করতে এবং বিভিন্ন উপাদান কনফিগার করতে দুটি সহায়ক বস্তু ব্যবহার করা হয়।
এই বস্তুগুলি হল:

· LteHelper, যা এলটিই রেডিও অ্যাক্সেস নেটওয়ার্কের কনফিগারেশনের যত্ন নেয়, যেমন
সেইসাথে ইপিএস ধারকদের সেটআপ এবং প্রকাশের সমন্বয় সাধনের জন্য। দ্য LteHelper শ্রেণী
API সংজ্ঞা এবং এর বাস্তবায়ন উভয়ই প্রদান করে।

· EpcHelper, যা বিবর্তিত প্যাকেট কোরের কনফিগারেশনের যত্ন নেয়। দ্য
EpcHelper ক্লাস একটি বিমূর্ত বেস ক্লাস যা শুধুমাত্র API সংজ্ঞা প্রদান করে; দ্য
বিভিন্ন EPC-এর অনুমতি দেওয়ার জন্য বাস্তবায়ন শিশু ক্লাসে অর্পণ করা হয়
নেটওয়ার্ক মডেল।

এটি ব্যবহার করে একটি সাধারণ LTE-শুধু সিমুলেশন তৈরি করা সম্ভব LteHelper একা, বা
উভয় ব্যবহার করে সম্পূর্ণ LTE-EPC সিমুলেশন তৈরি করুন LteHelper এবং EpcHelper. যখন উভয়
সাহায্যকারী ব্যবহার করা হয়, তারা একটি মাস্টার-দাস ফ্যাশনে ইন্টারঅ্যাক্ট, সঙ্গে LteHelper মাস্টার হচ্ছে
যা ব্যবহারকারী প্রোগ্রামের সাথে সরাসরি যোগাযোগ করে, এবং EpcHelper "হুড অধীনে" কাজ
ইপিসি কনফিগার করুন সুস্পষ্ট পদ্ধতির মাধ্যমে LteHelper. সঠিক মিথস্ক্রিয়া হয়
চিত্রে প্রদর্শিত ক্রম নকশা of দ্য মিথষ্ক্রিয়া মধ্যে LteHelper এবং
EpcHelper.
[ছবি] LteHelper এবং EpcHelper এর মধ্যে মিথস্ক্রিয়ার ক্রম চিত্র। UNINDENT

ব্যবহারকারী ডকুমেন্টেশন
পটভূমি
আমরা ধরে নিই যে জেনেরিক চালানোর জন্য কীভাবে ns-3 সিমুলেটর ব্যবহার করতে হয় তার সাথে পাঠক ইতিমধ্যেই পরিচিত
সিমুলেশন প্রোগ্রাম। যদি এটি না হয়, আমরা দৃঢ়ভাবে পাঠকের সাথে পরামর্শ করার পরামর্শ দিই
[ns3 টিউটোরিয়াল]।

ব্যবহার সংক্ষিপ্ত বিবরণ
ns-3 LTE মডেল হল একটি সফ্টওয়্যার লাইব্রেরি যা LTE নেটওয়ার্কের সিমুলেশন করতে দেয়,
ঐচ্ছিকভাবে বিবর্তিত প্যাকেট কোর (EPC) সহ। যেমন সঞ্চালন প্রক্রিয়া
সিমুলেশনগুলি সাধারণত নিম্নলিখিত পদক্ষেপগুলিকে জড়িত করে:

1. নির্ধারণ করা দ্য দৃশ্যকল্প অনুকরণ করা

2. লেখা a ব্যাজ কার্যক্রম যে পছন্দসই দৃশ্যকল্প recreates
টপোলজি/স্থাপত্য। এটি ব্যবহার করে ns-3 LTE মডেল লাইব্রেরিতে অ্যাক্সেস করা হয়
ns3::LteHelper API-এ সংজ্ঞায়িত করা হয়েছে src/lte/helper/lte-helper.h.

3. নির্দিষ্ট করুন কনফিগারেশন পরামিতি জন্য ব্যবহার করা হচ্ছে যে বস্তুর
সিমুলেশন এটি ইনপুট ফাইল ব্যবহার করে করা যেতে পারে (এর মাধ্যমে ns3::কনফিগস্টোর) বা
সরাসরি সিমুলেশন প্রোগ্রামের মধ্যে।

4. কনফিগার করুন দ্য আকাঙ্ক্ষিত আউটপুট সিমুলেটর দ্বারা উত্পাদিত হবে

5. চালান সিমুলেশন

এই সমস্ত দিকগুলি ব্যবহারিক মাধ্যমে নিম্নলিখিত বিভাগে ব্যাখ্যা করা হবে
উদাহরণ।

মৌলিক ব্যাজ কার্যক্রম
এখানে একটি ন্যূনতম সিমুলেশন প্রোগ্রাম যা শুধুমাত্র LTE-সিমুলেশন করার জন্য প্রয়োজন
(ইপিসি ছাড়া)।

1. প্রাথমিক বয়লারপ্লেট:

#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত

নামস্থান ns3 ব্যবহার করে;

int প্রধান (int argc, char *argv[])
{
// বাকি সিমুলেশন প্রোগ্রাম অনুসরণ করে

2. তৈরি একটি LteHelper বস্তু:

Ptr lteHelper = CreateObject ();

এটি কিছু সাধারণ বস্তুকে (যেমন, চ্যানেল অবজেক্ট) ইনস্ট্যান্টিয়েট করবে এবং প্রদান করবে
eNBs এবং UE যোগ করার এবং কনফিগার করার পদ্ধতি।

3। সৃষ্টি নোড eNB(গুলি) এবং UE-এর জন্য বস্তু:

NodeContainer enbNodes;
enbNodes.Create (1);
NodeContainer ueNodes;
ueNodes.Create (2);

মনে রাখবেন যে এই মুহুর্তে উপরের নোড উদাহরণগুলির এখনও একটি LTE প্রোটোকল নেই
স্ট্যাক ইনস্টল করা; তারা শুধু খালি নোড.

4. সমস্ত নোডের জন্য গতিশীলতা মডেল কনফিগার করুন:

গতিশীলতা সাহায্যকারী গতিশীলতা;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (enbNodes);
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (ueNodes);

উপরের সমস্ত নোডগুলি স্থানাঙ্কে (0,0,0) স্থাপন করবে। অনুগ্রহ করে দেখুন
কিভাবে আপনার নিজের অবস্থান সেট বা কনফিগার করতে হবে তার জন্য ns-3 গতিশীলতা মডেলের ডকুমেন্টেশন
নোড আন্দোলন।

5. eNB(গুলি) তে একটি LTE প্রোটোকল স্ট্যাক ইনস্টল করুন:

NetDeviceContainer enbDevs;
enbDevs = lteHelper->InstallEnbDevice (enbNodes);

6. UE-তে একটি LTE প্রোটোকল স্ট্যাক ইনস্টল করুন:

NetDevice Container ueDevs;
ueDevs = lteHelper->InstallUeDevice (ueNodes);

7. একটি eNB এর সাথে UE সংযুক্ত করুন। এটি eNB অনুযায়ী প্রতিটি UE কনফিগার করবে
কনফিগারেশন, এবং তাদের মধ্যে একটি RRC সংযোগ তৈরি করুন:

lteHelper->সংযুক্ত করুন (ueDevs, enbDevs.Get (0));

8. প্রতিটি UE এবং eNB এর সাথে এটি সংযুক্ত একটি ডেটা রেডিও বহনকারী সক্রিয় করুন:

enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE;
EpsBearer bearer (q);
lteHelper->ActivateDataRadioBearer (ueDevs, bearer);

এই পদ্ধতিটি সেই বাহকের জন্য দুটি স্যাচুরেশন ট্র্যাফিক জেনারেটর সক্রিয় করবে, একটি
আপলিংকে এবং একটি ডাউনলিংকে।

9. থামার সময় সেট করুন:

সিমুলেটর::স্টপ (সেকেন্ড (0.005));

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

10. সিমুলেশন চালান:

সিমুলেটর::রান ();

11. পরিষ্কার করুন এবং প্রস্থান করুন:

সিমুলেটর::ধ্বংস ();
ফিরে 0;
}

কিভাবে সিমুলেশন প্রোগ্রাম কম্পাইল এবং চালানো যায়, অনুগ্রহ করে [ns3tutorial] দেখুন।

কনফিগারেশন of এলটিই মডেল পরামিতি
সমস্ত প্রাসঙ্গিক LTE মডেল পরামিতি ns-3 অ্যাট্রিবিউট সিস্টেমের মাধ্যমে পরিচালিত হয়।
সমস্ত বিষয়ে বিস্তারিত তথ্যের জন্য অনুগ্রহ করে [ns3tutorial] এবং [ns3manual] পড়ুন
এটি করার সম্ভাব্য পদ্ধতি (পরিবেশগত ভেরিয়েবল, C++ API, GtkConfigStore...)।

নিম্নলিখিত, আমরা সংক্ষেপে সংক্ষিপ্তভাবে বর্ণনা করব কিভাবে ইনপুট ফাইল একসাথে ব্যবহার করে এটি করা যায়
ns-3 কনফিগারস্টোর। প্রথমত, আপনাকে আপনার সিমুলেশনে নিম্নলিখিতগুলি রাখতে হবে
প্রোগ্রাম, ঠিক পরে প্রধান () শুরু হয়:

কমান্ডলাইন cmd;
cmd.Parse (argc, argv);
ConfigStore inputConfig;
inputConfig.ConfigureDefaults ();
// আবার পার্স করুন যাতে আপনি কমান্ড লাইন থেকে ডিফল্ট মান ওভাররাইড করতে পারেন
cmd.Parse (argc, argv);

উপরের কাজ করার জন্য, আপনিও নিশ্চিত করুন # অন্তর্ভুক্ত "ns3/config-store.h". এখন একটি তৈরি করুন
নামের টেক্সট ফাইল (উদাহরণস্বরূপ) input-defaults.txt নতুন ডিফল্ট মান নির্দিষ্ট করা যে
আপনি কিছু বৈশিষ্ট্যের জন্য ব্যবহার করতে চান:

ডিফল্ট ns3::LteHelper::Seduler "ns3::PfFfMacScheduler"
ডিফল্ট ns3::LteHelper::PathlossModel "ns3::FriisSpectrumPropagationLossModel"
ডিফল্ট ns3::LteEnbNetDevice::UlBandwidth "25"
ডিফল্ট ns3::LteEnbNetDevice::DlBandwidth "25"
ডিফল্ট ns3::LteEnbNetDevice::DlEarfcn "100"
ডিফল্ট ns3::LteEnbNetDevice::UlEarfcn "18100"
ডিফল্ট ns3::LteUePhy::TxPower "10"
ডিফল্ট ns3::LteUePhy::NoiseFigure "9"
ডিফল্ট ns3::LteEnbPhy::TxPower "30"
ডিফল্ট ns3::LteEnbPhy::NoiseFigure "5"

ধরুন আপনার সিমুলেশন প্রোগ্রাম বলা হয় src/lte/examples/lte-sim-with-input, আপনি যা করতে পারেন
এখন নিম্নলিখিত উপায়ে সিমুলেশন প্রোগ্রামে এই সেটিংস পাস করুন:

./waf --command-template="%s --ns3::ConfigStore::Filename=input-defaults.txt --ns3::ConfigStore::Mode=Load --ns3::ConfigStore::FileFormat=RawText" --রান src/lte/examples/lte-sim-with-input

উপরন্তু, আপনি নিম্নলিখিত কমান্ডের সাহায্যে একটি টেমপ্লেট ইনপুট ফাইল তৈরি করতে পারেন:

./waf --command-template="%s --ns3::ConfigStore::Filename=input-defaults.txt --ns3::ConfigStore::Mode=Save --ns3::ConfigStore::FileFormat=RawText" --রান src/lte/examples/lte-sim-with-input

উল্লেখ্য যে উপরেরটি ফাইলটিতে রাখবে input-defaults.txt সব ডিফল্ট মান যে
সিমুলেটরের আপনার নির্দিষ্ট বিল্ডে নিবন্ধিত আছে, প্রচুর নন-এলটিই সহ
বৈশিষ্ট্যাবলী।

কনফিগার করুন এলটিই ম্যাক নির্ধারণকারী
এখানে বিভিন্ন ধরনের LTE MAC শিডিউলার ব্যবহারকারী বেছে নিতে পারেন। ব্যবহারকারী নিম্নলিখিত ব্যবহার করতে পারেন
সময়সূচী প্রকার সংজ্ঞায়িত করার জন্য কোড:

Ptr lteHelper = CreateObject ();
lteHelper->SetSchedulerType ("ns3::FdMtFfMacScheduler"); // FD-MT শিডিউলার
lteHelper->SetSchedulerType ("ns3::TdMtFfMacScheduler"); // TD-MT শিডিউলার
lteHelper->SetSchedulerType ("ns3::TtaFfMacScheduler"); // TTA শিডিউলার
lteHelper->SetSchedulerType ("ns3::FdBetFfMacScheduler"); // FD-BET শিডিউলার
lteHelper->SetSchedulerType ("ns3::TdBetFfMacScheduler"); // TD-BET শিডিউলার
lteHelper->SetSchedulerType ("ns3::FdTbfqFfMacScheduler"); // FD-TBFQ সময়সূচী
lteHelper->SetSchedulerType ("ns3::TdTbfqFfMacScheduler"); // TD-TBFQ সময়সূচী
lteHelper->SetSchedulerType ("ns3::PssFfMacScheduler"); //পিএসএস শিডিউলার

TBFQ এবং PSS-এ অন্যান্য শিডিউলারের চেয়ে বেশি প্যারামিটার রয়েছে। ব্যবহারকারীরা সেই পরামিতিগুলি সংজ্ঞায়িত করতে পারে
নিম্নলিখিত উপায়ে:

* TBFQ সময়সূচী ::

Ptr lteHelper = CreateObject ();
lteHelper->SetSchedulerAttribute("Debt Limit", IntegerValue(yourvalue)); // ডিফল্ট মান -625000 বাইট (-5Mb)
lteHelper->SetSchedulerAttribute("Credit Limit", UintegerValue(yourvalue)); // ডিফল্ট মান 625000 বাইট (5Mb)
lteHelper->SetSchedulerAttribute("TokenPoolSize", UintegerValue(yourvalue)); // ডিফল্ট মান 1 বাইট
lteHelper->SetSchedulerAttribute("CreditableThreshold", UintegerValue(yourvalue)); // ডিফল্ট মান 0

* পিএসএস সময়সূচী ::

Ptr lteHelper = CreateObject ();
lteHelper->SetSchedulerAttribute("nMux", UIntegerValue(yourvalue)); // TD শিডিউলারের দ্বারা নির্বাচিত UE-এর সর্বাধিক সংখ্যা৷
lteHelper->SetSchedulerAttribute("PssFdSchedulerType", StringValue("CoItA")); // পিএসএস-এ পিএফ শিডিউলার টাইপ

TBFQ-এ, ঋণ সীমা এবং ক্রেডিট সীমার ডিফল্ট মান -5Mb এবং 5Mb সেট করা আছে
যথাক্রমে কাগজের উপর ভিত্তি করে [FABokhari2009]। বর্তমান বাস্তবায়ন বিবেচনা করে না
ক্রেডিট থ্রেশহোল্ড (C = 0)। PSS-এ, ব্যবহারকারী nMux সংজ্ঞায়িত না করলে, PSS এই মান সেট করবে
মোট UE এর অর্ধেক। ডিফল্ট FD সময়সূচী হল PFsch।

এছাড়াও, টিবিএফকিউ-তে টোকেন জেনারেশন রেট এবং পিএসএস-এ টার্গেট বিট রেট হওয়া দরকার
epc বহনকারী QoS-এ গ্যারান্টি বিট রেট (GBR) বা সর্বোচ্চ বিট রেট (MBR) দ্বারা কনফিগার করা হয়েছে
পরামিতি ব্যবহারকারীরা ডাউনলিংক এবং উভয় ক্ষেত্রে জিবিআর এবং এমবিআর সংজ্ঞায়িত করতে নিম্নলিখিত কোডগুলি ব্যবহার করতে পারেন
আপলিংক:

Ptr lteHelper = CreateObject ();
enum EpsBearer::Qci q = EpsBearer::yourvalue; // Qci প্রকার সংজ্ঞায়িত করুন
GbrQos তথ্য qos;
qos.gbrDl = আপনার মূল্য; // ডাউনলিঙ্ক জিবিআর
qos.gbrUl = আপনার মূল্য; // আপলিংক জিবিআর
qos.mbrDl = আপনার মূল্য; // ডাউনলিঙ্ক এমবিআর
qos.mbrUl = আপনার মূল্য; // আপলিংক এমবিআর
EpsBearer বহনকারী (q, qos);
lteHelper->ActivateDedicatedEpsBearer (ueDevs, bearer, EpcTft::Default ());

PSS-এ, বাহক স্তরের QoS প্যারামিটারে GBR থেকে TBR প্রাপ্ত হয়। TBFQ-এ, টোকেন জেনারেশন
ধারক স্তরের QoS প্যারামিটারে MBR সেটিং থেকে হার পাওয়া যায়, তাই
ধারাবাহিকভাবে কনফিগার করা প্রয়োজন। ধ্রুবক বিট রেট (সিবিআর) ট্র্যাফিকের জন্য, এটি প্রস্তাবিত
MBR তে GBR সেট করতে। ভ্যারিয়েন্স বিট রেট (VBR) ট্রাফিকের জন্য, MBR k বার সেট করার পরামর্শ দেওয়া হচ্ছে
সর্বোচ্চ ট্র্যাফিক রেট কভার করার জন্য GBR থেকে বড়। বর্তমান বাস্তবায়নে, k হয়
কাগজের উপর ভিত্তি করে তিন সেট করুন [FABokhari2009]। উপরন্তু, TBFQ এর বর্তমান সংস্করণ নেই
MBR এবং GBR-এ RLC হেডার এবং PDCP হেডারের দৈর্ঘ্য বিবেচনা করুন। TBFQ এর আরেকটি প্যারামিটার হল
প্যাকেট আগমনের হার। এই প্যারামিটারটি শিডিউলারের মধ্যে গণনা করা হয় এবং অতীতের সমান
গড় থ্রুপুট যা পিএফ শিডিউলারে ব্যবহৃত হয়।

এলটিই-ইপিসি মডেলের অনেকগুলি দরকারী বৈশিষ্ট্য নীচে বর্ণিত হবে
উপধারা তবুও, এমন অনেক বৈশিষ্ট্য রয়েছে যা স্পষ্টভাবে উল্লেখ করা হয়নি
ডিজাইন বা ব্যবহারকারীর ডকুমেন্টেশন, কিন্তু যা স্পষ্টভাবে ns-3 বৈশিষ্ট্য ব্যবহার করে নথিভুক্ত করা হয়েছে
পদ্ধতি. আপনি সহজেই একটি প্রদত্ত বস্তুর বৈশিষ্ট্যগুলির একটি তালিকা প্রিন্ট করতে পারেন
তাদের বর্ণনা এবং ডিফল্ট মান পাসিং --প্রিন্ট অ্যাট্রিবিউটস= একটি সিমুলেশন প্রোগ্রামে,
এটার মত:

./waf --run lena-simple --command-template="%s --PrintAttributes=ns3::LteHelper"

আপনি অন্যান্য LTE এবং EPC বস্তুর সাথেও চেষ্টা করতে পারেন, যেমন:

./waf --run lena-simple --command-template="%s --PrintAttributes=ns3::LteEnbNetDevice"
./waf --run lena-simple --command-template="%s --PrintAttributes=ns3::LteEnbMac"
./waf --run lena-simple --command-template="%s --PrintAttributes=ns3::LteEnbPhy"
./waf --run lena-simple --command-template="%s --PrintAttributes=ns3::LteUePhy"
./waf --run lena-simple --command-template="%s --PrintAttributes=ns3::PointToPointEpcHelper"

ব্যাজ আউটপুট
ns-3 LTE মডেল বর্তমানে PHY, MAC, RLC এবং PDCP স্তরের ফাইলের আউটপুট সমর্থন করে
মূল কর্মক্ষমতা সূচক (KPIs)। আপনি নিম্নলিখিত উপায়ে এটি সক্ষম করতে পারেন:

Ptr lteHelper = CreateObject ();

// এখানে সমস্ত সিমুলেশন দৃশ্যকল্প কনফিগার করুন...

lteHelper->EnablePhyTraces ();
lteHelper->EnableMacTraces ();
lteHelper->EnableRlcTraces ();
lteHelper->EnablePdcpTraces ();

সিমুলেটর::রান ();

RLC এবং PDCP KPIs একটি সময়ের ব্যবধানে গণনা করা হয় এবং ASCII ফাইলগুলিতে সংরক্ষণ করা হয়, দুটির জন্য
RLC KPIs এবং PDCP KPIs-এর জন্য দুটি, প্রতিটি ক্ষেত্রে একটি আপলিংকের জন্য এবং একটি ডাউনলিংকের জন্য। সময়
ব্যবধানের সময়কাল বৈশিষ্ট্য ব্যবহার করে নিয়ন্ত্রণ করা যেতে পারে
ns3::RadioBearerStatsCalculator::EpochDuration.

RLC KPI ফাইলগুলির কলামগুলি নিম্নলিখিত (আপলিংক এবং ডাউনলিংকের জন্য একই):

1. সিমুলেশন শুরু হওয়ার পর থেকে সেকেন্ডে পরিমাপের ব্যবধানের শুরুর সময়

2. সিমুলেশন শুরু হওয়ার পর থেকে সেকেন্ডে পরিমাপের ব্যবধানের শেষ সময়

3. সেল আইডি

4. অনন্য UE ID (IMSI)

5. সেল-নির্দিষ্ট UE ID (RNTI)

6. লজিক্যাল চ্যানেল আইডি

7. প্রেরিত RLC PDU এর সংখ্যা

8. মোট বাইট প্রেরিত.

9. প্রাপ্ত RLC PDU এর সংখ্যা

10. মোট বাইট প্রাপ্ত

11. সেকেন্ডে গড় RLC PDU বিলম্ব

12. RLC PDU বিলম্বের স্ট্যান্ডার্ড বিচ্যুতি

13. RLC PDU বিলম্বের ন্যূনতম মান

14. RLC PDU বিলম্বের সর্বোচ্চ মান

15. গড় RLC PDU আকার, বাইটে

16. RLC PDU আকারের স্ট্যান্ডার্ড বিচ্যুতি

17. ন্যূনতম RLC PDU আকার

18. সর্বোচ্চ RLC PDU আকার

একইভাবে, পিডিসিপি কেপিআই ফাইলগুলির কলামগুলি নিম্নলিখিত (আবারও, আপলিংকের জন্য একই
এবং ডাউনলিংক):

1. সিমুলেশন শুরু হওয়ার পর থেকে সেকেন্ডে পরিমাপের ব্যবধানের শুরুর সময়

2. সিমুলেশন শুরু হওয়ার পর থেকে সেকেন্ডে পরিমাপের ব্যবধানের শেষ সময়

3. সেল আইডি

4. অনন্য UE ID (IMSI)

5. সেল-নির্দিষ্ট UE ID (RNTI)

6. লজিক্যাল চ্যানেল আইডি

7. প্রেরিত PDCP PDU এর সংখ্যা

8. মোট বাইট প্রেরিত.

9. প্রাপ্ত PDCP PDU এর সংখ্যা

10. মোট বাইট প্রাপ্ত

11. সেকেন্ডে গড় PDCP PDU বিলম্ব

12. PDCP PDU বিলম্বের স্ট্যান্ডার্ড বিচ্যুতি

13. PDCP PDU বিলম্বের ন্যূনতম মান

14. PDCP PDU বিলম্বের সর্বোচ্চ মান

15. গড় PDCP PDU আকার, বাইটে

16. PDCP PDU আকারের স্ট্যান্ডার্ড বিচ্যুতি

17. ন্যূনতম PDCP PDU আকার

18. সর্বাধিক PDCP PDU আকার

MAC KPI গুলি মূলত শিডিউলারের দ্বারা রিপোর্ট করা সম্পদ বরাদ্দের একটি ট্রেস
প্রতিটি সাবফ্রেমের শুরু। এগুলি ASCII ফাইলগুলিতে সংরক্ষণ করা হয়। MAC KPIs ডাউনলিংক জন্য
বিন্যাস নিম্নলিখিত:

1. সেকেন্ডে সিমুলেশন সময় যেখানে বরাদ্দ নির্ধারণকারী দ্বারা নির্দেশিত হয়

2. সেল আইডি

3. অনন্য UE ID (IMSI)

4. ফ্রেম নম্বর

5. সাবফ্রেম নম্বর

6. সেল-নির্দিষ্ট UE ID (RNTI)

7. টিবি 1 এর এমসিএস

8. টিবি 1 এর আকার

9. TB 2 এর MCS (0 যদি না থাকে)

10. টিবি 2 এর আকার (0 না থাকলে)

আপলিংক MAC KPI-এর জন্য বিন্যাস হল:

1. সেকেন্ডে সিমুলেশন সময় যেখানে বরাদ্দ নির্ধারণকারী দ্বারা নির্দেশিত হয়

2. সেল আইডি

3. অনন্য UE ID (IMSI)

4. ফ্রেম নম্বর

5. সাবফ্রেম নম্বর

6. সেল-নির্দিষ্ট UE ID (RNTI)

7. TB এর MCS

8. টিবি আকার

MAC KPI আউটপুটের জন্য ব্যবহৃত ফাইলগুলির নাম ns-3 বৈশিষ্ট্যগুলির মাধ্যমে কাস্টমাইজ করা যেতে পারে
ns3::MacStatsCalculator::DlOutputFilename এবং ns3::MacStatsCalculator::UlOutputFilename.

PHY KPI গুলি সাতটি ভিন্ন ফাইলে বিতরণ করা হয়, যা বৈশিষ্ট্যগুলির মাধ্যমে কনফিগার করা যায়

1. ns3::PhyStatsCalculator::DlRsrpSinrFilename

2. ns3::PhyStatsCalculator::UeSinrFilename

3. ns3::PhyStatsCalculator::Interference Filename

4. ns3::PhyStatsCalculator::DlTxOutputFilename

5. ns3::PhyStatsCalculator::UlTxOutputFilename

6. ns3::PhyStatsCalculator::DlRxOutputFilename

7. ns3::PhyStatsCalculator::UlRxOutputFilename

RSRP/SINR ফাইলে, নিম্নলিখিত বিষয়বস্তু পাওয়া যায়:

1. সেকেন্ডে সিমুলেশন সময় যেখানে বরাদ্দ নির্ধারণকারী দ্বারা নির্দেশিত হয়

2. সেল আইডি

3. অনন্য UE ID (IMSI)

4. আরএসআরপি

5. রৈখিক ইউনিটে ডাউনলিংক SINR-এর সমস্ত RB-এর উপর রৈখিক গড়

UE SINR ফাইলের বিষয়বস্তু হল:

1. সেকেন্ডে সিমুলেশন সময় যেখানে বরাদ্দ নির্ধারণকারী দ্বারা নির্দেশিত হয়

2. সেল আইডি

3. অনন্য UE ID (IMSI)

4. UE-এর জন্য লিনিয়ার ইউনিটে SINR আপলিঙ্ক করুন

হস্তক্ষেপ ফাইলনামে বিষয়বস্তু হল:

1. সেকেন্ডে সিমুলেশন সময় যেখানে বরাদ্দ নির্ধারণকারী দ্বারা নির্দেশিত হয়

2. সেল আইডি

3. RB প্রতি হস্তক্ষেপ মান তালিকা

UL এবং DL ট্রান্সমিশন ফাইলগুলিতে অন্তর্ভুক্ত প্যারামিটারগুলি হল:

1. মিলিসেকেন্ডে সিমুলেশন সময়

2. সেল আইডি

3. অনন্য UE ID (IMSI)

4. আরএনটিআই

5. সংক্রমণ স্তর

6. এমসিএস

7. টিবি এর আকার

8. রিডানডেন্সি সংস্করণ

9. নতুন ডেটা সূচক পতাকা

এবং অবশেষে, UL এবং DL অভ্যর্থনা ফাইলগুলিতে অন্তর্ভুক্ত প্যারামিটারগুলি হল:

1. মিলিসেকেন্ডে সিমুলেশন সময়

2. সেল আইডি

3. অনন্য UE ID (IMSI)

4. আরএনটিআই

5. ট্রান্সমিশন মোড

6. সংক্রমণ স্তর

7. এমসিএস

8. টিবি এর আকার

9. রিডানডেন্সি সংস্করণ

10. নতুন ডেটা সূচক পতাকা

11. যক্ষ্মার অভ্যর্থনায় সঠিকতা

ফেইড চিহ্ন ব্যবহার
এই বিভাগে আমরা বর্ণনা করব কিভাবে LTE সিমুলেশনের মধ্যে ফেইডিং ট্রেস ব্যবহার করতে হয়।

ফেইড ট্রেস প্রজন্ম
প্রদত্ত একটি ডেডিকেটেড ম্যাটল্যাব স্ক্রিপ্ট ব্যবহার করে ফেইডিং ট্রেস তৈরি করা সম্ভব
কোড (/lte/model/fading-traces/fading-trace-generator.m) এই স্ক্রিপ্ট ইতিমধ্যে অন্তর্ভুক্ত
তিনটি 3GPP পরিস্থিতির জন্য সাধারণ ট্যাপ কনফিগারেশন (যেমন, পথচারী, যানবাহন এবং
[TS2] এর Annex B.36104-তে সংজ্ঞায়িত শহুরে; তবে ব্যবহারকারীরা তাদের পরিচয় করিয়ে দিতে পারেন
নির্দিষ্ট কনফিগারেশন। কনফিগারযোগ্য পরামিতিগুলির তালিকা দেওয়া আছে
নিম্নলিখিত:

· fc : ব্যবহারের ফ্রিকোয়েন্সি (এটি ডপলার গতির গণনাকে প্রভাবিত করে)।

· v_km_h : ব্যবহারকারীদের গতি

· ট্রেস সময়কাল : ট্রেসের মোট দৈর্ঘ্যের সেকেন্ডে সময়কাল।

· সংখ্যাআরবি : রিসোর্স ব্লকের সংখ্যা মূল্যায়ন করা হবে।

· ট্যাগ : ট্যাগটি তৈরি করা ফাইলে প্রয়োগ করা হবে।

উত্পন্ন ফাইলটিতে একটি ম্যাট্রিক্স ফ্যাশনে সংগঠিত ASCII- ফরম্যাট করা বাস্তব মান রয়েছে:
প্রতিটি সারি একটি ভিন্ন RB এর সাথে মিলে যায়, এবং প্রতিটি কলাম একটি ভিন্ন এর সাথে মিলে যায়
টেম্পোরাল ফেইডিং ট্রেস নমুনা।

এটা উল্লেখ্য যে ns-3 LTE মডিউল যেকোনো ফেইডিং ট্রেস ফাইলের সাথে কাজ করতে সক্ষম
যা উপরে বর্ণিত ASCII বিন্যাসের সাথে সঙ্গতিপূর্ণ। অতএব, অন্যান্য বাহ্যিক সরঞ্জাম হতে পারে
কাস্টম ফেইডিং ট্রেস তৈরি করতে ব্যবহৃত হয়, যেমন অন্যান্য সিমুলেটর বা
পরীক্ষামূলক ডিভাইস।

ফেইড ট্রেস ব্যবহার
একটি ফেইডিং ট্রেস ব্যবহার করার সময়, সঠিকভাবে ট্রেসটি নির্দিষ্ট করা অত্যন্ত গুরুত্বপূর্ণ
সিমুলেশনে পরামিতি, যাতে ফেইডিং মডেল লোড করতে পারে এবং সঠিকভাবে ব্যবহার করতে পারে। দ্য
কনফিগার করা পরামিতি হল:

· ট্রেসফাইলের নাম : লোড করা ট্রেসের নাম (পরম পথ, বা আপেক্ষিক পথ
যেখান থেকে সিমুলেশন প্রোগ্রামটি চালানো হয় সেই পথটি wrt);

· ট্রেস দৈর্ঘ্য : সেকেন্ডের মধ্যে ট্রেস সময়কাল;

· নমুনাসংখ্যা : নমুনার সংখ্যা;

· উইন্ডো সাইজ : সেকেন্ডের মধ্যে বিবর্ণ স্যাম্পলিং উইন্ডোর আকার;

এটা হাইলাইট করা গুরুত্বপূর্ণ যে ফেইডিং ট্রেসের স্যাম্পলিং ব্যবধান 1 ms হতে হবে
বা তার বেশি, এবং পরবর্তী ক্ষেত্রে এটি হওয়ার জন্য 1 ms এর একটি পূর্ণসংখ্যা গুণিত হতে হবে
বিবর্ণ মডিউল দ্বারা সঠিকভাবে প্রক্রিয়া করা হয়।

ম্যাটল্যাব স্ক্রিপ্টের ডিফল্ট কনফিগারেশন 10 সেকেন্ড দীর্ঘ একটি ট্রেস প্রদান করে, যা দিয়ে তৈরি
10,000 নমুনা (অর্থাৎ, প্রতি টিটিআই = 1 এমএস প্রতি 1 নমুনা) এবং 0.5 সেকেন্ডের উইন্ডোজ আকারের সাথে ব্যবহৃত
প্রশস্ততা. এগুলিও উপরে ব্যবহৃত প্যারামিটারগুলির ডিফল্ট মান
সিমুলেটর; তাই তাদের সেটেজ এড়ানো যেতে পারে যদি বিবর্ণ ট্রেস তাদের সম্মান করে।

বিবর্ণ মডিউল সক্রিয় করার জন্য (যা ডিফল্টরূপে সক্রিয় নয়) নিম্নলিখিত কোড
সিমুলেশন প্রোগ্রামে অন্তর্ভুক্ত করা উচিত:

Ptr lteHelper = CreateObject ();
lteHelper->SetFadingModel("ns3::TraceFadingLossModel");

এবং পরামিতি সেট করার জন্য:

lteHelper->SetFadingModelAttribute ("TraceFilename", StringValue ("src/lte/model/fading-traces/fading_trace_EPA_3kmph.fad"));
lteHelper->SetFadingModelAttribute ("TraceLength", TimeValue (সেকেন্ড (10.0)));
lteHelper->SetFadingModelAttribute ("SamplesNum", UintegerValue (10000));
lteHelper->SetFadingModelAttribute ("WindowSize", TimeValue (সেকেন্ড (0.5)));
lteHelper->SetFadingModelAttribute ("RbNum", UintegerValue (100));

উল্লেখ্য যে, ট্রেসফাইলের নাম একটি ডিফল্ট মান নেই, তাই করতে হবে
সর্বদা স্পষ্টভাবে সেট করা

সিমুলেটরটি স্থানীয়ভাবে তিনটি ফেইডিং ট্রেস প্রদান করে যা অনুযায়ী উৎপন্ন হয়
কনফিগারেশনগুলি [TS2] এর Annex B.36104-এ সংজ্ঞায়িত করা হয়েছে। এই ট্রেস পাওয়া যায়
ফোল্ডারের src/lte/model/fading-traces/) এই ট্রেস থেকে একটি উদ্ধৃতি প্রতিনিধিত্ব করা হয়
নিম্নলিখিত পরিসংখ্যান।
[ছবি: ফেইডিং ট্রেস 3 কিমি প্রতি ঘণ্টা] [ছবি] বিবর্ণ ট্রেসের অংশ অন্তর্ভুক্ত
একটি পথচারী দৃশ্যের জন্য সিমুলেটর (3 কিমি প্রতি ঘণ্টা গতি)।
[ছবি: ফেইডিং ট্রেস 60 কিমি প্রতি ঘণ্টা] [ছবি] বিবর্ণ ট্রেসের অংশ অন্তর্ভুক্ত
একটি যানবাহন দৃশ্যের জন্য সিমুলেটর (60 কিমি প্রতি ঘণ্টার গতি)।
[ছবি: ফেইডিং ট্রেস 3 কিমি প্রতি ঘণ্টা] [ছবি] বিবর্ণ ট্রেসের অংশ অন্তর্ভুক্ত
একটি শহুরে দৃশ্যের জন্য সিমুলেটর (3 কিমি প্রতি ঘণ্টার গতি)

গতিশীলতা মডেল সঙ্গে ভবন
আমরা এখন উদাহরণ দিয়ে ব্যাখ্যা করি কিভাবে বিল্ডিং মডেল ব্যবহার করতে হয় (বিশেষ করে,
গতিশীলতা বিল্ডিং তথ্য এবং শীর্ষ XNUMX গ্লোবাল HR এক্সিলেন্স অ্যাওয়ার্ডের বিল্ডিং প্রোপাগেশন মডেল ক্লাস) একটি ns-3 সিমুলেশনে
বিল্ডিং এবং ইনডোর নোডগুলি অন্তর্ভুক্ত করে একটি LTE সিমুলেশন দৃশ্যকল্প সেটআপ করার জন্য প্রোগ্রাম।

1. হেডার ফাইলগুলি অন্তর্ভুক্ত করতে হবে:

#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত

2. প্যাথলস মডেল নির্বাচন:

Ptr lteHelper = CreateObject ();

lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::BuildingsPropagationLossModel"));

3. EUTRA ব্যান্ড নির্বাচন

প্রচার মডেলের কাজের ফ্রিকোয়েন্সি নির্বাচনের সাথে করতে হবে
মানক ns-3 অ্যাট্রিবিউট সিস্টেম যেমন সংশ্লিষ্ট বিভাগে বর্ণিত হয়েছে ("এর কনফিগারেশন
LTE মডেল প্যারামিটার") DlEarfcn এবং UlEarfcn প্যারামিটারের মাধ্যমে, উদাহরণস্বরূপ:

lteHelper->SetEnbDeviceAttribute ("DlEarfcn", UintegerValue (100));
lteHelper->SetEnbDeviceAttribute ("UlEarfcn", UintegerValue (18100));

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

1. গতিশীলতা মডেল নির্বাচন:

গতিশীলতা সাহায্যকারী গতিশীলতা;
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");

উল্লেখ্য যে কোন গতিশীলতা মডেল ব্যবহার করা যেতে পারে।

2. বিল্ডিং সৃষ্টি:

দ্বিগুণ x_min = 0.0;
দ্বিগুণ x_max = 10.0;
দ্বিগুণ y_min = 0.0;
দ্বিগুণ y_max = 20.0;
ডবল z_min = 0.0;
ডবল z_max = 10.0;
Ptr b = CreateObject ();
b->সেট সীমানা (বক্স (x_min, x_max, y_min, y_max, z_min, z_max));
b->সেটবিল্ডিং টাইপ (বিল্ডিং::আবাসিক);
b->SetExtWallsType (Building::ConcreteWithWindows);
b->SetNFloors (3);
b->SetNRoomsX (3);
b->SetNRoomsY (2);

এটি 10 ​​x 20 মিটার বেস এবং উচ্চতা সহ একটি আবাসিক বিল্ডিংকে ত্বরান্বিত করবে
10 মিটার যার বাইরের দেয়াল কংক্রিটের জানালা সহ; ভবন তিনটি আছে
মেঝে এবং সমান আকারের কক্ষগুলির অভ্যন্তরীণ 3 x 2 গ্রিড রয়েছে।

3. নোড তৈরি এবং অবস্থান:

ueNodes.Create (2);
mobility.Install (ueNodes);
বিল্ডিং হেল্পার::ইনস্টল করুন (ueNodes);
NetDevice Container ueDevs;
ueDevs = lteHelper->InstallUeDevice (ueNodes);
Ptr mm0 = enbNodes.Get (0)->GetObject ();
Ptr mm1 = enbNodes.Get (1)->GetObject ();
mm0->সেট পজিশন (ভেক্টর (5.0, 5.0, 1.5));
mm1->সেট পজিশন (ভেক্টর (30.0, 40.0, 1.5));

4. বিল্ডিং এবং গতিশীলতা মডেল কনফিগারেশন চূড়ান্ত করুন:

বিল্ডিং হেল্পার::মেকমোবিলিটি মডেল সামঞ্জস্যপূর্ণ ();

ডকুমেন্টেশন দেখুন ভবন আরো বিস্তারিত তথ্যের জন্য মডিউল.

PHY ভুল মডেল
শারীরিক ত্রুটি মডেল ডেটা ত্রুটি মডেল এবং ডাউনলিংক নিয়ন্ত্রণ ত্রুটি নিয়ে গঠিত
মডেল, উভয়ই ডিফল্টরূপে সক্রিয়। ns3 দিয়ে তাদের নিষ্ক্রিয় করা সম্ভব
অ্যাট্রিবিউট সিস্টেম, বিস্তারিতভাবে:

Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (false));
Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanValue (false));

এমআইএমও মডেল
এই উপধারায় আমরা MIMO পরামিতিগুলিকে কীভাবে কনফিগার করতে হয় তা ব্যাখ্যা করি। LTE 7 প্রকার সংজ্ঞায়িত করে
সংক্রমণ মোডের:

· ট্রান্সমিশন মোড 1: SISO।

· ট্রান্সমিশন মোড 2: MIMO Tx বৈচিত্র্য।

· ট্রান্সমিশন মোড 3: MIMO স্থানিক মাল্টিপ্লেক্সিটি ওপেন লুপ।

· ট্রান্সমিশন মোড 4: MIMO স্থানিক মাল্টিপ্লেক্সিটি বন্ধ লুপ।

· ট্রান্সমিশন মোড 5: MIMO মাল্টি-ইউজার।

· ট্রান্সমিশন মোড 6: ক্লোজার লুপ একক স্তর প্রিকোডিং।

· ট্রান্সমিশন মোড 7: একক অ্যান্টেনা পোর্ট 5।

বাস্তবায়িত মডেল অনুসারে, সিমুলেটরটিতে প্রথম তিনটি ট্রান্সমিশন মোড অন্তর্ভুক্ত রয়েছে
প্রকার ডিফল্ট হল ট্রান্সমিশন মোড 1 (SISO)। ডিফল্ট পরিবর্তন করার জন্য
ট্রান্সমিশন মোড ব্যবহার করতে হবে, অ্যাট্রিবিউট ডিফল্ট ট্রান্সমিশনমোড এর LteEnbrRrc পারেন
ব্যবহার করা হবে, নিম্নলিখিত হিসাবে দেখানো হয়েছে:

Config::SetDefault ("ns3::LteEnbRrc::DefaultTransmissionMode", UintegerValue (0)); // SISO
Config::SetDefault ("ns3::LteEnbRrc::DefaultTransmissionMode", UintegerValue (1)); // MIMO Tx বৈচিত্র্য (1 স্তর)
Config::SetDefault ("ns3::LteEnbRrc::DefaultTransmissionMode", UintegerValue (2)); // MIMO স্থানিক মাল্টিপ্লেক্সিটি (2 স্তর)

সিমুলেশনের সময় একটি নির্দিষ্ট ব্যবহারকারীর ট্রান্সমিশন মোড পরিবর্তন করার জন্য একটি নির্দিষ্ট
উভয় স্ট্যান্ডার্ড সময়সূচীতে ইন্টারফেস প্রয়োগ করা হয়েছে:

void TransmissionModeConfiguration Update (uint16_t rnti, uint8_t txMode);

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

Ptr lteEnbDev = enbDevs.Get (0)->GetObject ();
PointerValue ptrval;
enbNetDev->GetAttribute ("FfMacScheduler", ptrval);
Ptr rrsched = ptrval.Get ();
সিমুলেটর::শিডিউল (সেকেন্ড (0.2), &RrFfMacScheduler::TransmissionModeConfigurationUpdate, rrsched, rnti, 1);

অবশেষে, বাস্তবায়িত মডেলটি বিভিন্ন MIMO মডেল অনুসারে পুনরায় কনফিগার করা যেতে পারে
লাভের মান আপডেট করা (একমাত্র সীমাবদ্ধতা হল যে লাভের সময় ধ্রুবক থাকতে হবে
সিমুলেশন রান-টাইম এবং স্তরগুলির জন্য সাধারণ)। প্রতিটি ট্রান্সমিশন মোডের লাভ হতে পারে
স্ট্যান্ডার্ড ns3 অ্যাট্রিবিউট সিস্টেম অনুযায়ী পরিবর্তিত হয়েছে, যেখানে বৈশিষ্ট্যগুলি হল:
TxMode1 Gain, TxMode2 Gain, TxMode3 Gain, TxMode4 Gain, TxMode5 Gain, TxMode6 Gain এবং
TxMode7 Gain. শুধুমাত্র ডিফল্ট দ্বারা TxMode1 Gain, TxMode2 Gain এবং TxMode3 Gain একটি অর্থপূর্ণ আছে
মান, যেগুলি _[CatreuxMIMO] (অর্থাৎ, যথাক্রমে 0.0, 4.2 এবং -2.8) দ্বারা প্রাপ্ত
dB)।

ব্যবহার of অ্যান্টেনা মডেল
আমরা এখন দেখাই কিভাবে একটি নির্দিষ্ট অ্যান্টেনা মডেলকে একটি eNB যন্ত্রের সাথে সংযুক্ত করি যাতে a মডেল হয়৷
একটি ম্যাক্রো eNB এর সেক্টর। এই উদ্দেশ্যে, এটি ব্যবহার করা সুবিধাজনক কোসাইন অ্যান্টেনা মডেল
ns-3 অ্যান্টেনা মডিউল দ্বারা প্রদত্ত। eNB এর কনফিগারেশন এর মাধ্যমে করতে হবে
LteHelper উদাহরণ সৃষ্টির ঠিক আগে EnbNetDevice, যেমন দেখানো হয়েছে
নিম্নলিখিত:

lteHelper->SetEnbAntennaModelType ("ns3::CosineAntennaModel");
lteHelper->SetEnbAntennaModelAttribute ("ওরিয়েন্টেশন", DoubleValue (0));
lteHelper->SetEnbAntennaModelAttribute ("Beamwidth", DoubleValue (60);
lteHelper->SetEnbAntennaModelAttribute ("MaxGain", DoubleValue (0.0));

উপরের কোডটি একটি অ্যান্টেনা মডেল তৈরি করবে যার সাথে একটি 60 ডিগ্রি বিমউইথ নির্দেশিত হবে
এক্স অক্ষ। অভিযোজন X অক্ষ থেকে ডিগ্রীতে পরিমাপ করা হয়, যেমন, একটি অভিযোজন
90-এর একটি Y অক্ষ বরাবর নির্দেশ করবে এবং -90-এর স্থিতিবিন্যাস নেতিবাচক দিকে নির্দেশ করবে
Y অক্ষ বরাবর দিক। বিম প্রস্থ হল -3 dB বিম প্রস্থ, যেমন, 60 ডিগ্রির জন্য
beamwidth মি একটি কোণে অ্যান্টেনা লাভ
অভিযোজনের দিক থেকে 30 ডিগ্রি হল -3 dB।

একটি মাল্টি-সেক্টর সাইট তৈরি করতে, আপনাকে একই জায়গায় বিভিন্ন ns-3 নোড তৈরি করতে হবে
অবস্থান, এবং আলাদা কনফিগার করতে EnbNetDevice হতে হবে বিভিন্ন অ্যান্টেনা অভিযোজন সঙ্গে
প্রতিটি নোডে ইনস্টল করা হয়।

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

এটি করার জন্য, আপনাকে আপনার সিমুলেশন প্রোগ্রামে নিম্নলিখিত কোডটি যোগ করতে হবে
শেষ, সিমুলেটর::চালান (): কলের ঠিক আগে

Ptr remHelper = CreateObject ();
remHelper->SetAttribute ("ChannelPath", StringValue ("/ChannelList/0"));
remHelper->SetAttribute ("OutputFile", StringValue ("rem.out"));
remHelper->SetAttribute ("XMin", DoubleValue (-400.0));
remHelper->SetAttribute ("XMax", DoubleValue (400.0));
remHelper->SetAttribute ("XRes", UintegerValue (100));
remHelper->SetAttribute ("YMin", DoubleValue (-300.0));
remHelper->SetAttribute ("YMax", DoubleValue (300.0));
remHelper->SetAttribute ("YRes", UintegerValue (75));
remHelper->SetAttribute ("Z", DoubleValue (0.0));
remHelper->SetAttribute ("UseDataChannel", BooleanValue (true));
remHelper->SetAttribute ("RbId", IntegerValue (10));
remHelper->ইনস্টল ();

এর বৈশিষ্ট্যগুলি কনফিগার করে রেডিওএনভায়রনমেন্ট ম্যাপহেল্পার উপরে দেখানো হিসাবে অবজেক্ট, আপনি
তৈরি করা REM-এর পরামিতি টিউন করতে পারে। উল্লেখ্য যে প্রতিটি
রেডিওএনভায়রনমেন্ট ম্যাপহেল্পার উদাহরণ শুধুমাত্র একটি REM তৈরি করতে পারে; আপনি আরো উৎপন্ন করতে চান
REM, আপনাকে প্রতিটি REM-এর জন্য একটি পৃথক উদাহরণ তৈরি করতে হবে।

উল্লেখ্য যে REM জেনারেশন খুবই চাহিদাপূর্ণ, বিশেষ করে:

· রান-টাইম মেমরি খরচ প্রতি পিক্সেল প্রায় 5KB। উদাহরণস্বরূপ, একটি REM
500x500 এর রেজোলিউশনের সাথে প্রায় 1.25 GB মেমরির প্রয়োজন হবে এবং এর রেজোলিউশন
1000x1000 এর জন্য প্রয়োজন প্রায় 5 GB (এই সময়ে একটি নিয়মিত পিসির জন্য খুব বেশি
লেখা)। এই সমস্যাটি কাটিয়ে উঠতে, প্রতিটির সাথে পরপর ধাপে REM তৈরি করা হয়
ধাপের মূল্যায়নের মাধ্যমে সর্বাধিক পিক্সেলের একটি সংখ্যা নির্ধারণ করা হয়
গুণ রেডিওএনভায়রনমেন্ট ম্যাপহেল্পার::ম্যাক্সপয়েন্টস পারআইটারেশন.

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

REM নিম্নলিখিত বিন্যাসে একটি ASCII ফাইলে সংরক্ষণ করা হয়:

কলাম 1 হল x স্থানাঙ্ক

· কলাম 2 হল y স্থানাঙ্ক

কলাম 3 হল z স্থানাঙ্ক

· কলাম 4 হল লিনিয়ার ইউনিটে SINR

একটি ন্যূনতম gnuplot স্ক্রিপ্ট যা আপনাকে REM প্লট করার অনুমতি দেয় নীচে দেওয়া হল:

ভিউ মানচিত্র সেট করুন;
x লেবেল "X" সেট করুন
ইলেবেল "Y" সেট করুন
cblabel "SINR (dB)" সেট করুন
আনসেট কী
ছবি সহ ($1):($2):(10*log10($4)) ব্যবহার করে "rem.out" প্লট করুন

একটি উদাহরণ হিসাবে, এখানে REM যা উদাহরণ প্রোগ্রামের সাথে পাওয়া যেতে পারে
লেনা-ডুয়াল-স্ট্রাইপ, যা একটি সহ-চ্যানেল স্থাপনায় তিন-সেক্টরের LTE ম্যাক্রোসেল দেখায়
কিছু আবাসিক ফেমটোসেল এলোমেলোভাবে অ্যাপার্টমেন্টের দুটি ব্লকে মোতায়েন করা হয়েছে।
[ছবি] লেনা-ডুয়াল-স্ট্রাইপ উদাহরণ থেকে REM প্রাপ্ত। UNINDENT

মনে রাখবেন যে লেনা-ডুয়াল-স্ট্রাইপ উদাহরণ প্রোগ্রামটি gnuplot-সামঞ্জস্যপূর্ণ আউটপুট তৈরি করে
UE এবং eNB নোডের পাশাপাশি এর অবস্থান সম্পর্কে তথ্য ধারণকারী ফাইল
ভবন, যথাক্রমে ফাইল ues.txt, enbs.txt এবং buildings.txt। এই পারে
gnuplot ব্যবহার করার সময় সহজেই অন্তর্ভুক্ত করা যায়। উদাহরণস্বরূপ, ধরে নিচ্ছি যে আপনার gnuplot স্ক্রিপ্ট
(উদাহরণস্বরূপ, উপরে বর্ণিত ন্যূনতম gnuplot স্ক্রিপ্ট) নামের একটি ফাইলে সংরক্ষণ করা হয়
আমার_প্লট_স্ক্রিপ্ট, নিম্নলিখিত কমান্ড চালানো UEs, eNBs এবং এর অবস্থান প্লট করবে
REM এর উপরে বিল্ডিং:

gnuplot -p enbs.txt ues.txt buildings.txt my_plot_script

এএমসি মডেল এবং CQI হিসাব
সিমুলেটর দুটি সম্ভাব্য স্কিম প্রদান করে যা এমসিএস নির্বাচনকে উদ্বিগ্ন করে
এবং অনুরূপভাবে CQI-এর প্রজন্ম। প্রথমটি GSoC মডিউলের উপর ভিত্তি করে
[Piro2011] এবং RB ভিত্তিতে কাজ করে। এই মডেলটি ns3 বৈশিষ্ট্যের সাথে সক্রিয় করা যেতে পারে
সিস্টেম, নিম্নলিখিত হিসাবে উপস্থাপিত:

Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));

যদিও, শারীরিক ত্রুটি মডেলের উপর ভিত্তি করে সমাধানটি নিয়ন্ত্রণ করা যেতে পারে:

Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::MiErrorModel));

অবশেষে, প্রয়োজনীয় দক্ষতা PiroEW2010 AMC মডিউল টিউন করা যেতে পারে ধন্যবাদ
BER বৈশিষ্ট্য (), উদাহরণস্বরূপ:

Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (0.00005));

প্রসূত মোড়ক মূল (ইসিসি)
আমরা এখন ব্যাখ্যা করি কিভাবে একটি সিমুলেশন প্রোগ্রাম লিখতে হয় যা ইপিসিকে অনুকরণ করতে দেয়
এলটিই রেডিও অ্যাক্সেস নেটওয়ার্ক ছাড়াও। EPC ব্যবহার IPv4 নেটওয়ার্কিং ব্যবহার করার অনুমতি দেয়
LTE ডিভাইস সহ। অন্য কথায়, আপনি নিয়মিত ns-3 অ্যাপ্লিকেশন ব্যবহার করতে সক্ষম হবেন
এবং এলটিই এর উপর IPv4 এর উপর সকেট, এবং অন্য যে কোন IPv4 এর সাথে একটি LTE নেটওয়ার্ক সংযোগ করতে
আপনার সিমুলেশনে নেটওয়ার্ক থাকতে পারে।

প্রথমত, ছাড়াও LteHelper যা আমরা ইতিমধ্যেই চালু করেছি মৌলিক ব্যাজ
কার্যক্রম, আপনাকে একটি অতিরিক্ত ব্যবহার করতে হবে EpcHelper ক্লাস, যা তৈরি করার যত্ন নেবে
EPC সত্তা এবং নেটওয়ার্ক টপোলজি। মনে রাখবেন আপনি ব্যবহার করতে পারবেন না EpcHelper সরাসরি, এটি হিসাবে
একটি বিমূর্ত বেস ক্লাস; পরিবর্তে, আপনাকে এর একটি চাইল্ড ক্লাস ব্যবহার করতে হবে, যা
বিভিন্ন EPC টপোলজি বাস্তবায়ন প্রদান করে। এই উদাহরণে আমরা বিবেচনা করব
PointToPointEpcHelper, যা পয়েন্ট-টু-পয়েন্ট লিঙ্কের উপর ভিত্তি করে একটি EPC প্রয়োগ করে। এটি ব্যবহার করতে,
আপনাকে প্রথমে আপনার সিমুলেশন প্রোগ্রামে এই কোডটি সন্নিবেশ করতে হবে:

Ptr lteHelper = CreateObject ();
Ptr epcHelper = CreateObject ();

তারপর, আপনাকে LTE সাহায্যকারীকে বলতে হবে যে EPC ব্যবহার করা হবে:

lteHelper->SetEpcHelper (epcHelper);

উপরের ধাপটি প্রয়োজনীয় যাতে LTE সাহায্যকারী উপযুক্ত EPC ট্রিগার করবে
কিছু গুরুত্বপূর্ণ কনফিগারেশনের সাথে সঙ্গতিপূর্ণ কনফিগারেশন, যেমন যখন একটি নতুন eNB
অথবা UE সিমুলেশনে যোগ করা হয়, অথবা একটি EPS বহনকারী তৈরি করা হয়। ইপিসি সাহায্যকারী করবে
স্বয়ংক্রিয়ভাবে প্রয়োজনীয় সেটআপের যত্ন নেয়, যেমন S1 লিঙ্ক তৈরি এবং S1 বহনকারী
সেটআপ এই সব ব্যবহারকারীর হস্তক্ষেপ ছাড়াই করা হবে.

কল করা হচ্ছে lteHelper->SetEpcHelper (epcHelper) EPC ব্যবহার সক্ষম করে, এবং পাশ আছে
প্রভাব যে কোনো নতুন LteEnbrRrc যে তৈরি করা হবে EpsBearerToRlcMapping
বৈশিষ্ট্য সেট RLC_UM_ALWAYS পরিবর্তে RLC_SM_ALWAYS যদি পরেরটি ডিফল্ট হয়;
অন্যথায়, বৈশিষ্ট্যটি পরিবর্তন করা হবে না (উদাহরণস্বরূপ, যদি আপনি ডিফল্টে পরিবর্তন করেন
RLC_AM_ALWAYS, এটা স্পর্শ করা হবে না)।

এটি উল্লেখ্য যে EpcHelper এছাড়াও স্বয়ংক্রিয়ভাবে PGW নোড তৈরি করবে এবং
এটিকে কনফিগার করুন যাতে এটি LTE রেডিও অ্যাক্সেস নেটওয়ার্ক থেকে/এ ট্রাফিক সঠিকভাবে পরিচালনা করতে পারে।
তবুও, PGW কে অন্যান্য IPv4 নেটওয়ার্কের সাথে সংযোগ করতে আপনাকে কিছু স্পষ্ট কোড যোগ করতে হবে (যেমন,
ইন্টারনেট). কিভাবে একটি একক দূরবর্তী হোস্টের সাথে সংযোগ করতে হয় সে সম্পর্কে এখানে একটি খুব সহজ উদাহরণ
একটি পয়েন্ট-টু-পয়েন্ট লিঙ্কের মাধ্যমে PGW:

Ptr pgw = epcHelper->GetPgwNode ();

// একটি একক RemoteHost তৈরি করুন
NodeContainer remoteHostContainer;
remoteHostContainer.Create (1);
Ptr remoteHost = remoteHostContainer.Get (0);
InternetStackHelper ইন্টারনেট;
internet.Install (remoteHostContainer);

// ইন্টারনেট তৈরি করুন
PointToPointHelper p2ph;
p2ph.SetDeviceAttribute ("DataRate", DataRateValue (DataRate ("100Gb/s")));
p2ph.SetDeviceAttribute ("Mtu", UintegerValue (1500));
p2ph.SetChannelAttribute ("বিলম্ব", টাইম ভ্যালু (সেকেন্ড (0.010)));
NetDeviceContainer internetDevices = p2ph.Install (pgw, remoteHost);
Ipv4AddressHelper ipv4h;
ipv4h.SetBase ("1.0.0.0", "255.0.0.0");
Ipv4InterfaceContainer internetIpIfaces = ipv4h.Assign (internetDevices);
// ইন্টারফেস 0 হল লোকালহোস্ট, 1 হল p2p ডিভাইস
Ipv4Address remoteHostAddr = internetIpIfaces.GetAddress (1);

দূরবর্তী হোস্ট যাতে LTE UE-তে পৌঁছাতে পারে তার জন্য রুটগুলি নির্দিষ্ট করা গুরুত্বপূর্ণ৷ একটি উপায়
এই সত্য শোষণ দ্বারা করা হয় যে PointToPointEpcHelper ডিফল্টভাবে বরাদ্দ করা হবে
7.0.0.0 নেটওয়ার্কে একটি IP ঠিকানা LTE UE-এর জন্য। এটি মাথায় রেখে, এটি করা যথেষ্ট:

Ipv4StaticRoutingHelper ipv4RoutingHelper;
Ptr remoteHostStaticRouting = ipv4RoutingHelper.GetStaticRouting (remoteHost->GetObject ());
remoteHostStaticRouting->AddNetworkRouteTo (Ipv4Address ("7.0.0.0"), Ipv4Mask ("255.0.0.0"), 1);

এখন, আপনাকে চালিয়ে যেতে হবে এবং পূর্ববর্তী বিভাগে ব্যাখ্যা করা LTE eNB এবং UE তৈরি করতে হবে।
আপনি অবশ্যই অন্যান্য LTE দিকগুলি যেমন প্যাথলস এবং ফেইডিং মডেলগুলি কনফিগার করতে পারেন৷ ঠিক
আপনি UEs তৈরি করার পরে, আপনাকে আইপি নেটওয়ার্কিংয়ের জন্যও কনফিগার করতে হবে। এই কাজ করা হয়
নিম্নরূপ. আমরা ধরে নিই যে আপনার কাছে UE এবং eNodeB নোডগুলির জন্য একটি ধারক রয়েছে:

NodeContainer ueNodes;
NodeContainer enbNodes;

একটি LTE-শুধুমাত্র সিমুলেশন কনফিগার করতে, আপনি তখন সাধারণত এরকম কিছু করবেন:

NetDeviceContainer ueLteDevs = lteHelper->InstallUeDevice (ueNodes);
lteHelper->সংযুক্ত করুন (ueLteDevs, enbLteDevs.Get (0));

আইপি নেটওয়ার্কিং এর জন্য UE কনফিগার করার জন্য, আপনাকে শুধু অতিরিক্ত লাইক করতে হবে
এই:

// আমরা UE-তে আইপি স্ট্যাক ইনস্টল করি
InternetStackHelper ইন্টারনেট;
internet.Install (ueNodes);

// UE-তে IP ঠিকানা বরাদ্দ করুন
জন্য (uint32_t u = 0; u < ueNodes.GetN (); ++u)
{
Ptr ue = ueNodes.Get (u);
Ptr ueLteDevice = ueLteDevs.Get (u);
Ipv4InterfaceContainer ueIpIface = epcHelper->AssignUeIpv4Address (NetDeviceContainer (ueLteDevice));
// UE এর জন্য ডিফল্ট গেটওয়ে সেট করুন
Ptr ueStaticRouting = ipv4RoutingHelper.GetStaticRouting (ue->GetObject ());
ueStaticRouting->SetDefaultRoute (epcHelper->GetUeDefaultGatewayAddress (), 1);
}

ধারকদের সক্রিয়করণ যা করা হয়েছে তার সাথে কিছুটা ভিন্ন উপায়ে করা হয়
LTE-শুধুমাত্র সিমুলেশনের জন্য। প্রথমত, ActivateDataRadioBearer পদ্ধতিটি ব্যবহার করা যাবে না
যখন ইপিসি ব্যবহার করা হয়। দ্বিতীয়ত, যখন ইপিসি ব্যবহার করা হয়, তখন ডিফল্ট ইপিএস বহনকারী সক্রিয় হবে
আপনি যখন LteHelper::Attach () কল করেন তখন স্বয়ংক্রিয়ভাবে তৃতীয়ত, আপনি যদি ডেডিকেটেড সেটআপ করতে চান
ইপিএস বহনকারী, আপনি LteHelper::ActivateDedicatedEpsBearer () পদ্ধতি ব্যবহার করে তা করতে পারেন। এই
পদ্ধতিটি ট্র্যাফিক ফ্লো টেমপ্লেট (TFT) একটি প্যারামিটার হিসাবে নেয়, যা একটি কাঠামো যা
ডেডিকেটেড ইপিএস বহনকারীর সাথে ম্যাপ করা হবে এমন ট্রাফিকের ধরন চিহ্নিত করে। এখানে একটি
UE যোগাযোগের জন্য একটি অ্যাপ্লিকেশনের জন্য একটি ডেডিকেটেড বহনকারী সেটআপ করার জন্য উদাহরণ
পোর্ট 1234:

Ptr tft = তৈরি করুন ();
EpcTft::PacketFilter pf;
pf.localPortStart = 1234;
pf.localPortEnd = 1234;
tft->যোগ করুন (pf);
lteHelper->ActivateDedicatedEpsBearer (ueLteDevs, EpsBearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT), tft);

আপনি অবশ্যই কাস্টম EpsBearer এবং EpcTft কনফিগারেশন ব্যবহার করতে পারেন, অনুগ্রহ করে দেখুন
এটি কিভাবে করতে হবে তার জন্য ডক্সিজেন ডকুমেন্টেশন।

অবশেষে, আপনি LTE UE নোডগুলিতে অ্যাপ্লিকেশন ইনস্টল করতে পারেন যা রিমোটের সাথে যোগাযোগ করে
ইন্টারনেটের মাধ্যমে অ্যাপ্লিকেশন। এটি সাধারণ ns-3 পদ্ধতি অনুসরণ করে করা হয়।
একটি একক রিমোটহোস্টের সাথে আমাদের সাধারণ উদাহরণ অনুসরণ করে, এখানে ডাউনলিংক সেটআপ করার পদ্ধতি রয়েছে
দূরবর্তী হোস্টে একটি UdpClient অ্যাপ্লিকেশন এবং একটি প্যাকেটসিঙ্ক সহ যোগাযোগ
LTE UE (আগের কোড স্নিপেটগুলির একই পরিবর্তনশীল নাম ব্যবহার করে)

uint16_t dlPort = 1234;
PacketSinkHelper packetSinkHelper ("ns3::UdpSocketFactory",
InetSocketAddress (Ipv4Address::GetAny (), dlPort));
ApplicationContainer serverApps = packetSinkHelper.Install (ue);
serverApps.Start (সেকেন্ড (0.01));
UdpClientHelper ক্লায়েন্ট (ueIpIface.GetAddress (0), dlPort);
ApplicationContainer clientApps = client.Install (remoteHost);
clientApps.Start (সেকেন্ড (0.01));

এখানেই শেষ! আপনি এখন স্বাভাবিক হিসাবে আপনার সিমুলেশন শুরু করতে পারেন:

সিমুলেটর::স্টপ (সেকেন্ড (10.0));
সিমুলেটর::রান ();

ব্যবহার দ্য ইপিসি সঙ্গে অনুকরণ মোড
পূর্ববর্তী বিভাগে আমরা eNBs এবং এর মধ্যে সংযোগের জন্য PointToPoint লিঙ্কগুলি ব্যবহার করেছি
SGW (S1-U ইন্টারফেস) এবং eNB গুলির মধ্যে (X2-U এবং X2-C ইন্টারফেস)। এলটিই মডিউল
PointToPoint লিঙ্কের পরিবর্তে অনুকরণ করা লিঙ্ক ব্যবহার করে সমর্থন করে। এই মাত্র দ্বারা অর্জিত হয়
এর সৃষ্টি প্রতিস্থাপন LteHelper এবং EpcHelper নিম্নলিখিত কোড সহ:

Ptr lteHelper = CreateObject ();
Ptr epcHelper = CreateObject ();
lteHelper->SetEpcHelper (epcHelper);
epcHelper->ইনিশিয়ালাইজ ();

গুণাবলী ns3::EmuEpcHelper::sgwDeviceName এবং ns3::EmuEpcHelper::enbDeviceName হয়
S1-U, X2-U এবং X2-C পরিবহনের জন্য ব্যবহৃত ডিভাইসগুলির নাম সেট করতে ব্যবহৃত হয়
যথাক্রমে SGW এবং eNB-তে ইন্টারফেস। আমরা এখন দেখাব কিভাবে এটি একটি এ করা হয়
উদাহরণ যেখানে আমরা উদাহরণ প্রোগ্রাম চালাই lena-simple-epc-emu দুটি ভার্চুয়াল ব্যবহার করে
ইথারনেট ইন্টারফেস।

প্রথমত আমরা যথাযথভাবে ns-3 তৈরি করি:

# সজ্জিত করা
./waf কনফিগার --enable-sudo --enable-modules=lte,fd-net-device --enable-examples

# নির্মাণ
./waff

তারপরে আমরা দুটি ভার্চুয়াল ইথারনেট ইন্টারফেস সেটআপ করি এবং ট্র্যাফিক দেখতে ওয়্যারশার্ক শুরু করি
এর মাধ্যমে যাচ্ছে:

# নোট: আপনাকে রুট হতে হবে

# দুটি জোড়াযুক্ত ভেথ ডিভাইস তৈরি করুন
ip লিঙ্ক যোগ করুন নাম veth0 টাইপ veth পিয়ার নাম veth1
আইপি লিঙ্ক শো

# প্রমিসকিউয়াস মোড সক্ষম করুন
ip লিঙ্ক সেট veth0 promisc চালু
ip লিঙ্ক সেট veth1 promisc চালু

# ইন্টারফেস উপরে আনুন
ip লিঙ্ক সেট আপ veth0
ip লিঙ্ক সেট আপ veth1

# ওয়্যারশার্ক শুরু করুন এবং veth0 এ ক্যাপচার করুন
ওয়্যারশার্ক এবং

আমরা এখন সিমুলেটেড ঘড়ি দিয়ে উদাহরণ প্রোগ্রাম চালাতে পারি:

./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1"

ওয়্যারশার্ক ব্যবহার করে, আপনাকে প্রথমে ARP রেজোলিউশন দেখতে হবে, তারপর কিছু GTP প্যাকেট উভয়ই বিনিময় করেছে
আপলিংক এবং ডাউনলিংকে।

উদাহরণ প্রোগ্রামের ডিফল্ট সেটিং হল 1 eNB এবং 1UE। আপনি এর মাধ্যমে এটি পরিবর্তন করতে পারেন
কমান্ড লাইন পরামিতি, যেমন:

./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1 --nEnbs=2 --nUesPerEnb =2"

উপলব্ধ পরামিতিগুলির একটি তালিকা পেতে:

./waf --run lena-simple-epc-emu --command="%s --PrintHelp"

রিয়েলটাইম ঘড়ির সাথে চালানোর জন্য: এটি দেখা যাচ্ছে যে ডিফল্ট ডিবাগ বিল্ড এর জন্য খুব ধীর
প্রকৃত সময়. BestEffort মোডের সাথে রিয়েল টাইম সীমাবদ্ধতাগুলিকে নরম করা ভাল ধারণা নয়:
কিছু ভুল হতে পারে (যেমন, ARP ব্যর্থ হতে পারে) এবং, যদি তাই হয়, আপনি কোনো ডেটা প্যাকেট পাবেন না
আউট সুতরাং আপনার একটি শালীন হার্ডওয়্যার এবং স্ট্যাটিকালি লিঙ্কযুক্ত অপ্টিমাইজ করা বিল্ড দরকার
মডিউল:

./waf কনফিগার -d অপ্টিমাইজ করা --enable-static --enable-modules=lte --enable-examples --enable-sudo

তারপর এই মত উদাহরণ প্রোগ্রাম চালান:

./waf --run lena-simple-epc-emu --command="%s --ns3::EmuEpcHelper::sgwDeviceName=veth0 --ns3::EmuEpcHelper::enbDeviceName=veth1 --simulatorImplementationType=ns3::RealtimeSimulatorImplementationType --ns3::RealtimeSimulatorImpl::SynchronizationMode=Hard Limit"

হার্ডলিমিট সেটিংটি নোট করুন, যার ফলে প্রোগ্রামটি চলতে না পারলে এটি বন্ধ হয়ে যাবে
বাস্তব সময়ের সাথে।

এই বিভাগে বর্ণিত পদ্ধতিটি যে কোনও ধরণের নেট ডিভাইসের সাথে ব্যবহার করা যেতে পারে। জন্য
উদাহরণ, [Baldo2014] বর্ণনা করে যে এটি একটি এমুলেটেড LTE-EPC নেটওয়ার্ক চালানোর জন্য কীভাবে ব্যবহৃত হয়েছিল
বাস্তব মাল্টি-লেয়ার প্যাকেট-অপটিক্যাল পরিবহন নেটওয়ার্ক।

নেটওয়ার্ক ক্রোক
বিভাগে মৌলিক উদাহরণ হিসাবে দেখানো হয়েছে মৌলিক ব্যাজ কার্যক্রম, একটি UE সংযুক্ত করা একটি
eNodeB কল করে করা হয় LteHelper::সংযুক্ত করুন ফাংশন.

নেটওয়ার্ক সংযুক্তির 2টি সম্ভাব্য উপায় রয়েছে। প্রথম পদ্ধতি হল "ম্যানুয়াল" এক,
দ্বিতীয় এক একটি আরো আছে "স্বয়ংক্রিয়" এটা বোধ. তাদের প্রত্যেককে কভার করা হবে
এই শাখা.

ম্যানুয়াল ক্রোক
এই পদ্ধতিটি ব্যবহার করে LteHelper::সংযুক্ত করুন উপরে উল্লিখিত ফাংশন। এটা একমাত্র হয়েছে
এলটিই মডিউলের পূর্ববর্তী সংস্করণগুলিতে উপলব্ধ নেটওয়ার্ক সংযুক্তি পদ্ধতি। এটা সাধারণত
সিমুলেশন শুরু হওয়ার আগে আহ্বান করা হয়েছে:

lteHelper->সংযুক্ত করুন (ueDevs, enbDev); // একটি একক eNodeB-তে এক বা একাধিক UE সংযুক্ত করুন

LteHelper::InstallEnbDevice এবং LteHelper::InstallUeDevice ফাংশন কল করা আবশ্যক
সংযুক্ত করার আগে। একটি EPC-সক্ষম সিমুলেশনে, সঠিকভাবে IPv4 থাকা প্রয়োজন
UE তে আগে থেকে ইনস্টল করা।

এই পদ্ধতিটি খুবই সহজ, কিন্তু আপনাকে ঠিক কোন UE এর অন্তর্গত তা জানতে হবে
সিমুলেশন শুরু হওয়ার আগে eNodeB. এটি কঠিন হতে পারে যখন UE প্রাথমিক অবস্থান হয়
এলোমেলোভাবে সিমুলেশন স্ক্রিপ্ট দ্বারা নির্ধারিত.

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

বাস্তব জীবনে, UE স্বয়ংক্রিয়ভাবে নির্দিষ্ট মানদণ্ডের মূল্যায়ন করবে এবং সেরা সেলটি নির্বাচন করবে
ব্যবহারকারীর ম্যানুয়াল হস্তক্ষেপ ছাড়াই সংযুক্ত করুন। স্পষ্টতই এই ক্ষেত্রে এটি নয়
এই LteHelper::সংযুক্ত করুন ফাংশন অন্যান্য নেটওয়ার্ক সংযুক্তি পদ্ধতি বেশি ব্যবহার করে "স্বয়ংক্রিয়"
নেটওয়ার্ক সংযুক্তির পদ্ধতি, যেমনটি পরবর্তী বর্ণনা করা হবে।

স্বয়ংক্রিয় ক্রোক ব্যবহার অলস মোড কোষ নির্বাচন কার্যপ্রণালী
প্রাপ্ত সংকেতের শক্তি হল সর্বোত্তম নির্বাচনের জন্য ব্যবহৃত মানদণ্ড
সংযুক্ত করার জন্য সেল। এই মানদণ্ডের ব্যবহার বাস্তবায়িত হয় প্রারম্ভিক কোষ নির্বাচন
প্রক্রিয়া, যা অন্য সংস্করণ কল করে আহ্বান করা যেতে পারে LteHelper::সংযুক্ত করুন
ফাংশন, নীচে দেখানো হিসাবে:

lteHelper->সংযুক্ত করুন (ueDevs); // একটি শক্তিশালী কক্ষে এক বা একাধিক UE সংযুক্ত করুন

ম্যানুয়াল পদ্ধতির সাথে পার্থক্য হল গন্তব্য eNodeB নির্দিষ্ট করা নেই। দ্য
পদ্ধতিটি UE-এর জন্য সর্বোত্তম ঘর খুঁজে পাবে, সহ বিভিন্ন মানদণ্ডের উপর ভিত্তি করে
প্রাপ্ত সংকেতের শক্তি (RSRP)।

পদ্ধতিটি কল করার পরে, UE প্রতিবেশী কোষগুলি পরিমাপ করতে কিছু সময় ব্যয় করবে,
এবং তারপর সেরা একটি সংযুক্ত করার চেষ্টা করুন. আরো বিস্তারিত বিভাগে পাওয়া যাবে
ডিজাইন ডকুমেন্টেশনের সেকেন্ড-প্রাথমিক-সেল-নির্বাচন।

এটা মনে রাখা গুরুত্বপূর্ণ যে এই পদ্ধতিটি শুধুমাত্র EPC-সক্ষম সিমুলেশনে কাজ করে। LTE-শুধুমাত্র
সিমুলেশন ম্যানুয়াল সংযুক্তি পদ্ধতি অবলম্বন করা আবশ্যক.

বন্ধ গ্রাহক গ্রুপ
প্রাথমিক সেল নির্বাচন প্রক্রিয়ার একটি আকর্ষণীয় ব্যবহারের ক্ষেত্রে একটি সিমুলেশন সেটআপ করা
ক্লোজড সাবস্ক্রাইবার গ্রুপ (CSG) সহ পরিবেশ।

উদাহরণস্বরূপ, একটি নির্দিষ্ট eNodeB, সাধারণত একটি ছোট সংস্করণ যেমন femtocell এর অন্তর্গত হতে পারে
একটি ব্যক্তিগত মালিকের কাছে (যেমন একটি পরিবার বা ব্যবসা), শুধুমাত্র কিছু UE-তে অ্যাক্সেসের অনুমতি দেয় যা
আগে মালিক দ্বারা নিবন্ধিত করা হয়েছে. eNodeB এবং সম্পূর্ণভাবে নিবন্ধিত UE
একটি CSG গঠন করুন।

অ্যাক্সেস সীমাবদ্ধতা একই CSG-এর সাথে CSG সদস্যদের "লেবেল" দিয়ে অনুকরণ করা যেতে পারে
আইডি এটি eNodeB এবং UE উভয় বৈশিষ্ট্যের মাধ্যমে করা হয়, উদাহরণস্বরূপ ব্যবহার করে
অনুসরণ LteHelper ফাংশন:

// 1 এর CSG পরিচয় সহ নিম্নলিখিত eNodeB গুলি লেবেল করুন এবং CSG ইঙ্গিত সক্ষম করুন
lteHelper->SetEnbDeviceAttribute ("CsgId", UintegerValue (1));
lteHelper->SetEnbDeviceAttribute ("CsgIndication", বুলিয়ান ভ্যালু (সত্য));

// 1 এর CSG পরিচয় সহ এক বা একাধিক UE লেবেল করুন
lteHelper->SetUeDeviceAttribute ("CsgId", UintegerValue (1));

// eNodeBs এবং UE ইনস্টল করুন
NetDeviceContainer csgEnbDevs = lteHelper->InstallEnbDevice (csgEnbNodes);
NetDeviceContainer csgUeDevs = lteHelper->InstallUeDevice (csgUeNodes);

তারপর UE তে প্রাথমিক সেল নির্বাচন পদ্ধতি সক্ষম করুন:

lteHelper->সংযুক্ত করুন (csgUeDevs);

এটি প্রয়োজনীয় কারণ CSG সীমাবদ্ধতা শুধুমাত্র নেটওয়ার্কের স্বয়ংক্রিয় পদ্ধতিতে কাজ করে
সংযুক্তি, কিন্তু ম্যানুয়াল পদ্ধতিতে নয়।

মনে রাখবেন যে একটি eNodeB-এর CSG ইঙ্গিতকে মিথ্যা (ডিফল্ট মান) হিসাবে সেট করা হবে
সীমাবদ্ধতা নিষ্ক্রিয় করুন, অর্থাত্, যেকোনো UE এই eNodeB-এর সাথে সংযোগ করতে পারে।

কনফিগার করুন UE পরিমাপ
একটি সিমুলেশনে সক্রিয় UE পরিমাপ কনফিগারেশন নির্বাচিতদের দ্বারা নির্দেশিত হয়
"ভোক্তা" বলা হয়, যেমন হ্যান্ডওভার অ্যালগরিদম। ব্যবহারকারীরা তাদের নিজস্ব কনফিগারেশন যোগ করতে পারে
কর্ম, এবং এটি করার বিভিন্ন উপায় আছে:

1. eNodeB RRC সত্তায় সরাসরি কনফিগারেশন;

2. বিদ্যমান হ্যান্ডওভার অ্যালগরিদম কনফিগার করা; এবং

3. একটি নতুন হ্যান্ডওভার অ্যালগরিদম বিকাশ করা।

এই বিভাগে শুধুমাত্র প্রথম পদ্ধতি কভার করা হবে. দ্বিতীয় পদ্ধতি অন্তর্ভুক্ত করা হয় স্বয়ংক্রিয়
হস্তান্তর ট্রিগার, যখন তৃতীয় পদ্ধতিটি বিভাগে দৈর্ঘ্যে ব্যাখ্যা করা হয়েছে
ডিজাইন ডকুমেন্টেশনের সেকেন্ড-হ্যান্ডওভার-অ্যালগরিদম।

eNodeB RRC-তে সরাসরি কনফিগারেশন নিম্নরূপ কাজ করে। ব্যবহারকারী একটি নতুন তৈরি করে শুরু করে
LteRrcSap::ReportConfigEutra উদাহরণ এবং এটি পাস LteEnbrRrc::AddUeMeasReportConfig
ফাংশন ফাংশনটি ফেরত দেবে measId (পরিমাপ পরিচয়) যা একটি অনন্য
eNodeB উদাহরণে কনফিগারেশনের রেফারেন্স। এই ফাংশন আগে কল করা আবশ্যক
সিমুলেশন শুরু হয়। পরিমাপ কনফিগারেশন সংযুক্ত সমস্ত UE-তে সক্রিয় থাকবে
সিমুলেশনের পুরো সময়কাল জুড়ে eNodeB। সিমুলেশন সময়, ব্যবহারকারী পারেন
বিদ্যমান শোনার দ্বারা UEs দ্বারা উত্পাদিত পরিমাপ রিপোর্ট ক্যাপচার
LteEnbrRrc::RecvMeasurementReport উৎস ট্রেস.

গঠন ReportConfigEutra 3GPP স্পেসিফিকেশনের সাথে সঙ্গতিপূর্ণ। এর সংজ্ঞা
গঠন এবং প্রতিটি সদস্য ক্ষেত্র [TS6.3.5] এর ধারা 36331 এ পাওয়া যাবে।

নিচের কোড নমুনাটি ইভেন্ট A1 RSRP পরিমাপকে এর মধ্যে প্রতিটি eNodeB-তে কনফিগার করে
আধার devs:

LteRrcSap::ReportConfigEutra কনফিগারেশন;
config.eventId = LteRrcSap::ReportConfigEutra::EVENT_A1;
config.threshold1.choice = LteRrcSap::ThresholdEutra::THRESHOLD_RSRP;
config.threshold1.range = 41;
config.triggerQuantity = LteRrcSap::ReportConfigEutra::RSRP;
config.reportInterval = LteRrcSap::ReportConfigEutra::MS480;

std:: ভেক্টর measIdList;

NetDeviceContainer::Iterator it;
for (it = devs.Begin (); it != devs.End (); it++)
{
Ptr dev = *এটি;
Ptr enbDev = dev->GetObject ();
Ptr enbRrc = enbDev->GetRrc ();

uint8_t measId = enbRrc->AddUeMeasReportConfig (config);
measIdList.push_back (measId); // তৈরি করা measId মনে রাখবেন

enbRrc->TraceConnect ("RecvMeasurementReport",
"প্রসঙ্গ",
MakeCallback (&RecvMeasurementReportCallback));
}

মনে রাখবেন যে থ্রেশহোল্ডগুলি পরিসীমা হিসাবে প্রকাশ করা হয়। উপরের উদাহরণে, RSRP-এর জন্য রেঞ্জ 41
-100 dBm এর সাথে মিলে যায়। থেকে এবং পরিসীমা বিন্যাসে রূপান্তর বিভাগের কারণে
[TS9.1.4] এর 9.1.7 এবং 36133। দ্য ইউট্রান মেজারমেন্ট ম্যাপিং ক্লাসের বেশ কিছু স্ট্যাটিক আছে
এই উদ্দেশ্যে ব্যবহার করা যেতে পারে যে ফাংশন.

সংশ্লিষ্ট কলব্যাক ফাংশনের নিচের মত একটি সংজ্ঞা থাকবে:

অকার্যকর
RecvMeasurementReportCallback (std::স্ট্রিং প্রসঙ্গ,
uint64_t imsi,
uint16_t সেলআইডি,
uint16_t rnti,
LteRrcSap::MeasurementReport measReport);

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

সাধারণভাবে, এই প্রক্রিয়াটি এক ভোক্তাকে অজান্তে অন্যের সাথে হস্তক্ষেপ করতে বাধা দেয়
ভোক্তার রিপোর্টিং কনফিগারেশন।

উল্লেখ্য যে শুধুমাত্র রিপোর্টিং কনফিগারেশন অংশ (যেমন LteRrcSap::ReportConfigEutra) এর
UE পরিমাপ পরামিতি ভোক্তাদের কনফিগার করার জন্য উন্মুক্ত, অন্য অংশগুলি
লুকিয়ে রাখা হয়। ইন্ট্রা-ফ্রিকোয়েন্সি সীমাবদ্ধতা এই API এর পিছনে মূল প্রেরণা
বাস্তবায়ন সিদ্ধান্ত:

শুধুমাত্র একটি, দ্ব্যর্থহীন এবং নির্দিষ্ট মাপা লক্ষ্য, এইভাবে কোন আছে
এটি কনফিগার করতে হবে;

· মাপা পরিচয় লুকিয়ে রাখা হয় কারণ এক থেকে এক আছে
রিপোর্টিং কনফিগারেশন এবং পরিমাপ পরিচয়ের মধ্যে ম্যাপিং, এইভাবে একটি নতুন
একটি নতুন রিপোর্টিং কনফিগারেশন হলে পরিমাপ পরিচয় স্বয়ংক্রিয়ভাবে সেট আপ হয়
সৃষ্টি করা;

· পরিমাণ কনফিগারেশন অন্যত্র কনফিগার করা হয়েছে, সেকেন্ড-পারফর্মিং-মেজারমেন্ট দেখুন; এবং

· মাপা ফাঁক সমর্থিত নয়, কারণ এটি শুধুমাত্র আন্তঃ-ফ্রিকোয়েন্সির জন্য প্রযোজ্য
সেটিংস;

X2-ভিত্তিক হস্তান্তর
3GPP দ্বারা সংজ্ঞায়িত হিসাবে, হস্তান্তর হল একটি UE এর সার্ভিং সেল পরিবর্তন করার একটি পদ্ধতি
সংযুক্ত মোড। প্রক্রিয়ার সাথে জড়িত দুটি eNodeB কে সাধারণত বলা হয় উৎস
eNodeB এবং শীর্ষ XNUMX গ্লোবাল HR এক্সিলেন্স অ্যাওয়ার্ডের লক্ষ্য eNodeB.

সিমুলেশনে X2-ভিত্তিক হস্তান্তর কার্যকর করার জন্য, দুটি রয়েছে
প্রয়োজনীয়তা যা অবশ্যই পূরণ করতে হবে। প্রথমত, সিমুলেশনে ইপিসি সক্ষম করা আবশ্যক (দেখুন প্রসূত
মোড়ক মূল (ইসিসি)).

দ্বিতীয়ত, দুটি eNodeB-এর মধ্যে একটি X2 ইন্টারফেস কনফিগার করা আবশ্যক, যা হতে হবে
সিমুলেশন প্রোগ্রামের মধ্যে স্পষ্টভাবে করা হয়েছে:

lteHelper->AddX2Interface (enbNodes);

কোথায় enbNodes ইহা একটি নোডকন্টেইনার এতে দুটি eNodeB রয়েছে যার মধ্যে X2
ইন্টারফেস কনফিগার করা হয়. ধারকটিতে দুটির বেশি eNodeB থাকলে, ফাংশন
কন্টেইনারে eNodeB-এর প্রতিটি জোড়ার মধ্যে একটি X2 ইন্টারফেস তৈরি করবে।

সবশেষে, টার্গেট eNodeB কে অবশ্যই X2 হ্যান্ডওভার রিকোয়েস্টে "ওপেন" হিসেবে কনফিগার করতে হবে। প্রতি
eNodeB ডিফল্টরূপে খোলা থাকে, তাই বেশিরভাগ ক্ষেত্রে অতিরিক্ত নির্দেশের প্রয়োজন হয় না। তবে ব্যবহারকারীরা
বুলিয়ান অ্যাট্রিবিউট সেট করে eNodeB কে "বন্ধ" এ সেট করতে পারে
LteEnbrRrc::AdmitHandoverRequest থেকে মিথ্যা. একটি উদাহরণ হিসাবে, আপনি চালাতে পারেন lena-x2-হস্তান্তর
প্রোগ্রাম এবং এইভাবে বৈশিষ্ট্য সেট করুন:

NS_LOG=EpcX2:LteEnbRrc ./waf --run lena-x2-handover --command="%s --ns3::LteEnbRrc::AdmitHandoverRequest=false"

উপরোক্ত তিনটি প্রয়োজনীয়তা পূরণ করার পরে, হস্তান্তর পদ্ধতিটি ট্রিগার করা যেতে পারে
ম্যানুয়ালি বা স্বয়ংক্রিয়ভাবে। প্রতিটি নিম্নলিখিত উপবিভাগে উপস্থাপন করা হবে.

ম্যানুয়াল হস্তান্তর ট্রিগার
হ্যান্ডওভার ইভেন্ট একটি শিডিউল করে সিমুলেশন প্রোগ্রামের মধ্যে "ম্যানুয়ালি" ট্রিগার করা যেতে পারে
সুস্পষ্ট হস্তান্তর ঘটনা। দ্য LteHelper বস্তুর জন্য একটি সুবিধাজনক পদ্ধতি প্রদান করে
একটি হস্তান্তর ইভেন্টের সময়সূচী। উদাহরণ হিসেবে ধরা যাক ueLteDevs ইহা একটি
NetDevice Container যে UE ধারণ করে যেটি হস্তান্তর করা হবে এবং এটি enbLteDevs is
অন্য NetDevice Container যার উৎস এবং লক্ষ্য eNB রয়েছে। তারপর, একটি হস্তান্তর
0.1s এ এভাবে নির্ধারিত হতে পারে:

lteHelper->Handover Request (সেকেন্ড (0.100),
ueLteDevs.Get (0),
enbLteDevs.Get (0),
enbLteDevs.Get (1));

মনে রাখবেন UE-কে ইতিমধ্যেই উৎস eNB-এর সাথে সংযুক্ত থাকতে হবে, অন্যথায় সিমুলেশন
একটি ত্রুটি বার্তা দিয়ে শেষ হবে।

সম্পূর্ণ সোর্স কোড সহ একটি উদাহরণের জন্য, অনুগ্রহ করে পড়ুন lena-x2-হস্তান্তর উদাহরণ
প্রোগ্রাম.

স্বয়ংক্রিয় হস্তান্তর ট্রিগার
হস্তান্তর পদ্ধতি UE এর পরিবেশনকারী eNodeB দ্বারা "স্বয়ংক্রিয়ভাবে" ট্রিগার করা যেতে পারে।
ট্রিগার পিছনে যুক্তি বর্তমানে সক্রিয় হ্যান্ডওভার অ্যালগরিদম উপর নির্ভর করে
eNodeB RRC সত্তা। ব্যবহারকারীরা হ্যান্ডওভার অ্যালগরিদম নির্বাচন এবং কনফিগার করতে পারে যা ব্যবহার করা হবে
সিমুলেশনে, যা এই বিভাগে শীঘ্রই ব্যাখ্যা করা হবে। ব্যবহারকারীরাও বেছে নিতে পারেন
হ্যান্ডওভার অ্যালগরিদমের নিজস্ব বাস্তবায়ন লিখুন, যেমন বিভাগে বর্ণনা করা হয়েছে
ডিজাইন ডকুমেন্টেশনের সেকেন্ড-হ্যান্ডওভার-অ্যালগরিদম।

একটি হ্যান্ডওভার অ্যালগরিদম নির্বাচন করা হয় এর মাধ্যমে LteHelper বস্তু এবং তার
সেটহ্যান্ডওভার অ্যালগরিদম টাইপ পদ্ধতি নীচে দেখানো হিসাবে:

Ptr lteHelper = CreateObject ();
lteHelper->SetHandoverAlgorithmType ("ns3::A2A4RsrqHandoverAlgorithm");

নির্বাচিত হ্যান্ডওভার অ্যালগরিদম বিভিন্ন কনফিগারযোগ্য বৈশিষ্ট্যও প্রদান করতে পারে, যা
নিম্নলিখিত হিসাবে সেট করা যেতে পারে:

lteHelper->SetHandoverAlgorithmAttribute ("ServingCellThreshold",
UintegerValue (30%);
lteHelper->SetHandoverAlgorithmAttribute ("NeighbourCellOffset",
UintegerValue (1%);

এলটিই মডিউলে হ্যান্ডওভার অ্যালগরিদমের তিনটি বিকল্প অন্তর্ভুক্ত করা হয়েছে। দ্য A2-A4-RSRQ
হ্যান্ডওভার অ্যালগরিদম (নাম হিসাবে ns3::A2A4RsrqHandover অ্যালগরিদম) হল ডিফল্ট বিকল্প, এবং
ব্যবহার ইতিমধ্যে উপরে দেখানো হয়েছে.

আরেকটি বিকল্প হ'ল শক্তিশালী কোষ হ্যান্ডওভার অ্যালগরিদম (নাম হিসাবে
ns3::A3Rsrpহ্যান্ডওভার অ্যালগরিদম), যা নিম্নলিখিত কোড দ্বারা নির্বাচিত এবং কনফিগার করা যেতে পারে:

lteHelper->SetHandoverAlgorithmType ("ns3::A3RsrpHandoverAlgorithm");
lteHelper->SetHandoverAlgorithmAttribute ("হিস্টেরেসিস",
DoubleValue (3.0%);
lteHelper->SetHandoverAlgorithmAttribute ("TimeToTrigger",
টাইম ভ্যালু (মিলি সেকেন্ড (256%));

শেষ বিকল্প একটি বিশেষ এক, বলা হয় no-op হ্যান্ডওভার অ্যালগরিদম, যা মূলত
স্বয়ংক্রিয় হস্তান্তর ট্রিগার নিষ্ক্রিয় করে। এই ক্ষেত্রে যেমন ম্যানুয়াল জন্য দরকারী
হ্যান্ডওভার ট্রিগারের সমস্ত হস্তান্তরের সিদ্ধান্তের একচেটিয়া নিয়ন্ত্রণ প্রয়োজন। এর কোনোটাই নেই
কনফিগারযোগ্য বৈশিষ্ট্য। ব্যবহার নিম্নরূপ:

lteHelper->SetHandoverAlgorithmType ("ns3::NoOpHandoverAlgorithm");

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

অবশেষে, দী এনবিডিভাইস ইনস্টল করুন এর ফাংশন LteHelper একটি দৃষ্টান্ত ইনস্ট্যান্সিয়েট করবে
প্রতিটি eNodeB ডিভাইসের জন্য নির্বাচিত হ্যান্ডওভার অ্যালগরিদম। অন্য কথায়, নির্বাচন নিশ্চিত করুন
কোডের নিম্নলিখিত লাইনে এটি চূড়ান্ত করার আগে ডান হ্যান্ডওভার অ্যালগরিদম:

NetDeviceContainer enbLteDevs = lteHelper->InstallEnbDevice (enbNodes);

স্বয়ংক্রিয় হ্যান্ডওভার ট্রিগার ব্যবহারের সম্পূর্ণ সোর্স কোড সহ উদাহরণ পাওয়া যাবে
lena-x2-হস্তান্তর-পরিমাপ উদাহরণ প্রোগ্রাম।

সুরকরণ ব্যাজ সঙ্গে হস্তান্তর
ডিজাইন ডকুমেন্টেশনে উল্লিখিত হিসাবে, হস্তান্তর মডেলের বর্তমান বাস্তবায়ন হতে পারে
হস্তান্তরের ব্যর্থতা ঘটলে অপ্রত্যাশিত আচরণ তৈরি করে। এই উপধারা ফোকাস করা হবে
ব্যবহারকারীরা তাদের হস্তান্তর ব্যবহার করার পরিকল্পনা করলে যে পদক্ষেপগুলি বিবেচনায় নেওয়া উচিত
সিমুলেশন

হস্তান্তর ব্যর্থতার প্রধান কারণ যা আমরা মোকাবেলা করব তা হ'ল প্রেরণে ত্রুটি
হস্তান্তর-সম্পর্কিত সংকেত বার্তা একটি হস্তান্তর পদ্ধতি কার্যকর করার সময়। হিসাবে
ডিজাইন ডকুমেন্টেশন থেকে চিত্র-x2-ভিত্তিক-হ্যান্ডওভার-সেক-ডায়াগ্রাম থেকে স্পষ্ট,
তাদের মধ্যে অনেক আছে এবং তারা বিভিন্ন ইন্টারফেস এবং প্রোটোকল ব্যবহার করে। খাতিরে
সরলতা, আমরা নিরাপদে ধরে নিতে পারি যে X2 ইন্টারফেস (উৎস eNodeB এবং এর মধ্যে
টার্গেট eNodeB) এবং S1 ইন্টারফেস (টার্গেট eNodeB এবং SGW/PGW এর মধ্যে) বেশ
স্থিতিশীল তাই আমরা আমাদের মনোযোগ RRC প্রোটোকলের দিকে ফোকাস করব (UE এবং এর মধ্যে
eNodeBs) এবং র্যান্ডম অ্যাক্সেস পদ্ধতি, যা সাধারণত বাতাসের মাধ্যমে প্রেরণ করা হয়
এবং চ্যানেলের অবস্থার অবনতির জন্য সংবেদনশীল।

ট্রান্সমিশন ত্রুটি কমাতে একটি সাধারণ টিপস হল নিশ্চিত করা উচ্চ যথেষ্ট SINR প্রতিটি স্তরে
UE. এটি নেটওয়ার্ক টপোলজির একটি সঠিক পরিকল্পনার মাধ্যমে করা যেতে পারে ছোট নেটওয়ার্ক
কভারেজ গর্ত. যদি টপোলজিতে একটি পরিচিত কভারেজ হোল থাকে, তাহলে UE কনফিগার করা উচিত
যে এলাকায় উদ্যোগী না.

মনে রাখা আরেকটি পন্থা হল এড়াতে খুব দেরী হস্তান্তর. অন্য কথায়, হস্তান্তর
UE এর SINR খুব কম হওয়ার আগেই হওয়া উচিত, অন্যথায় UE পেতে ব্যর্থ হতে পারে
উৎস eNodeB থেকে হস্তান্তর কমান্ড। হ্যান্ডওভার অ্যালগরিদম নিয়ন্ত্রণ করার উপায় আছে
হস্তান্তরের সিদ্ধান্ত কত তাড়াতাড়ি বা দেরিতে নেওয়া হয়। উদাহরণস্বরূপ, A2-A4-RSRQ হ্যান্ডওভার অ্যালগরিদম
এটি একটি হস্তান্তর আগে সিদ্ধান্ত নিতে একটি উচ্চ থ্রেশহোল্ড সঙ্গে কনফিগার করা যেতে পারে. একইভাবে,
শক্তিশালী সেল হ্যান্ডওভার অ্যালগরিদমে ছোট হিস্টেরেসিস এবং/অথবা কম সময়-টু-ট্রিগার
সাধারণত আগে হস্তান্তর ফলাফল. এই জন্য সঠিক মান খুঁজে বের করার জন্য
পরামিতি, কারণগুলির মধ্যে একটি যা বিবেচনা করা উচিত তা হল UE চলাচলের গতি।
সাধারণত, একটি দ্রুত চলমান UE এর আগে হস্তান্তর করা প্রয়োজন। কিছু গবেষণা
কাজ প্রস্তাবিত মান প্রস্তাব করেছে, যেমন [Lee2010]-এ।

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

Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (false));
Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanValue (false));

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

হস্তান্তর পদাঙ্ক
RRC মডেল, বিশেষ করে LteEnbrRrc এবং LteUeRrc বস্তু, কিছু দরকারী প্রদান
ট্রেস যা কিছু কাস্টম ফাংশনের সাথে সংযুক্ত করা যেতে পারে যাতে সেগুলি শুরু করার সময় বলা হয়
এবং UE এবং eNB উভয় দিকে হস্তান্তর সম্পাদন পর্বের সমাপ্তি। একটি উদাহরণ হিসাবে, মধ্যে
আপনার সিমুলেশন প্রোগ্রাম আপনি নিম্নলিখিত পদ্ধতি ঘোষণা করতে পারেন:

অকার্যকর
NotifyHandoverStartUe (std::স্ট্রিং প্রসঙ্গ,
uint64_t imsi,
uint16_t সেলআইডি,
uint16_t rnti,
uint16_t targetCellId)
{
std::cout << সিমুলেটর::Now ().GetSeconds () << " " << প্রসঙ্গ
<< " UE IMSI " << imsi
<< ": পূর্বে CellId " << cellId এর সাথে সংযুক্ত
<< " RNTI এর সাথে " << rnti
<< ", CellId " << targetCellId-এ হস্তান্তর করা হচ্ছে
<< std::endl;
}

অকার্যকর
NotifyHandoverEndOkUe (std::স্ট্রিং প্রসঙ্গ,
uint64_t imsi,
uint16_t সেলআইডি,
uint16_t rnti)
{
std::cout << সিমুলেটর::Now ().GetSeconds () << " " << প্রসঙ্গ
<< " UE IMSI " << imsi
<< ": সেলআইডিতে সফল হস্তান্তর " << সেলআইডি৷
<< " RNTI এর সাথে " << rnti
<< std::endl;
}

অকার্যকর
NotifyHandoverStartEnb (std::স্ট্রিং প্রসঙ্গ,
uint64_t imsi,
uint16_t সেলআইডি,
uint16_t rnti,
uint16_t targetCellId)
{
std::cout << সিমুলেটর::Now ().GetSeconds () << " " << প্রসঙ্গ
<< " eNB সেলআইডি " << সেলআইডি
<< ": IMSI " << imsi দিয়ে UE হস্তান্তর শুরু করুন
<< " RNTI " << rnti
<< " সেলআইডি থেকে " << targetCellId
<< std::endl;
}

অকার্যকর
NotifyHandoverEndOkEnb (std::স্ট্রিং প্রসঙ্গ,
uint64_t imsi,
uint16_t সেলআইডি,
uint16_t rnti)
{
std::cout << সিমুলেটর::Now ().GetSeconds () << " " << প্রসঙ্গ
<< " eNB সেলআইডি " << সেলআইডি
<< ": IMSI " << imsi এর সাথে UE হস্তান্তর সম্পূর্ণ হয়েছে৷
<< " RNTI " << rnti
<< std::endl;
}

তারপরে, আপনি এই পদ্ধতিগুলিকে এইরকম সংশ্লিষ্ট ট্রেস উত্সগুলিতে হুক করতে পারেন:

কনফিগ::কানেক্ট ("/NodeList/*/DeviceList/*/LteEnbRrc/HandoverStart",
মেককলব্যাক (&NotifyHandoverStartEnb));
Config::Connect ("/NodeList/*/DeviceList/*/LteUeRrc/HandoverStart",
মেককলব্যাক (&NotifyHandoverStartUe));
কনফিগার::কানেক্ট ("/NodeList/*/DeviceList/*/LteEnbRrc/HandoverEndOk",
মেককলব্যাক (&NotifyHandoverEndOkEnb));
কনফিগ::কানেক্ট ("/NodeList/*/DeviceList/*/LteUeRrc/HandoverEndOk",
মেককলব্যাক (&NotifyHandoverEndOkUe));

উদাহরণ প্রোগ্রাম src/lte/examples/lena-x2-handover.cc উপরের সবগুলি কীভাবে তা ব্যাখ্যা করে
নির্দেশাবলী একটি সিমুলেশন প্রোগ্রামে একত্রিত করা যেতে পারে। আপনি এই মত প্রোগ্রাম চালাতে পারেন:

./waf --run lena-x2-হ্যান্ডওভার

এবং এটি কাস্টম হ্যান্ডওভার ট্রেস হুক দ্বারা মুদ্রিত বার্তাগুলিকে আউটপুট করবে। ক্রমানুসারে
উপরন্তু কিছু অর্থপূর্ণ লগিং তথ্য কল্পনা, আপনি যেমন প্রোগ্রাম চালাতে পারেন
এই:

NS_LOG=LteEnbRrc:LteUeRrc:EpcX2 ./waf --run lena-x2-হ্যান্ডওভার

ফ্রিকোয়েন্সি পুনঃব্যবহার আলগোরিদিম
এই বিভাগে আমরা বর্ণনা করব কিভাবে LTE-এর মধ্যে eNb-এ ফ্রিকোয়েন্সি রিইউজ অ্যালগরিদম ব্যবহার করতে হয়
সিমুলেশন কনফিগারেশনের দুটি সম্ভাব্য উপায় আছে। প্রথম পদ্ধতি হল
"ম্যানুয়াল" এক, এটি কনফিগার করার জন্য আরও পরামিতি প্রয়োজন, তবে ব্যবহারকারীকে FR কনফিগার করার অনুমতি দিন
তার প্রয়োজন অনুযায়ী অ্যালগরিদম। দ্বিতীয় পদ্ধতিটি আরও "স্বয়ংক্রিয়"। এটা খুব সুবিধাজনক,
কারণ প্রতিটি এফআর অ্যালগরিদমের জন্য একই, তাই ব্যবহারকারী খুব দ্রুত এফআর অ্যালগরিদম পরিবর্তন করতে পারে
শুধুমাত্র এফআর অ্যালগরিদমের ধরন পরিবর্তন করা। একটি ত্রুটি হল যে "স্বয়ংক্রিয়" পদ্ধতি শুধুমাত্র ব্যবহার করে
প্রতিটি অ্যালগরিদমের জন্য কনফিগারেশনের সীমিত সেট, যা এটিকে কম নমনীয় করে তোলে, কিন্তু হয়
বেশিরভাগ ক্ষেত্রেই যথেষ্ট।

নিম্নলিখিত উপ-বিভাগে এই দুটি পদ্ধতির আরও বর্ণনা করা হবে।

যদি ব্যবহারকারী ফ্রিকোয়েন্সি পুনঃব্যবহারের অ্যালগরিদম কনফিগার না করে, ডিফল্ট একটি (যেমন LteFrNoOpAlgorithm)
eNb এ ইনস্টল করা আছে। এটি এমনভাবে কাজ করে যেন FR অ্যালগরিদম অক্ষম ছিল।

একটি জিনিস যা উল্লেখ করা উচিত তা হল যে বেশিরভাগ বাস্তবায়িত এফআর অ্যালগরিদমগুলির সাথে কাজ করে
সেল ব্যান্ডউইথ 15 RB এর চেয়ে বেশি বা সমান। এই সীমাবদ্ধতা প্রয়োজন দ্বারা সৃষ্ট হয় যে
ট্রান্সমিশনের জন্য UE-তে অন্তত তিনটি একটানা RB বরাদ্দ করতে হবে।

ম্যানুয়াল কনফিগারেশন
ফ্রিকোয়েন্সি পুনঃব্যবহারের অ্যালগরিদম সিমুলেশন প্রোগ্রামের মধ্যে "ম্যানুয়ালি" কনফিগার করা যেতে পারে
এফআর অ্যালগরিদমের ধরন এবং এর সমস্ত বৈশিষ্ট্য নির্ধারণ করা। বর্তমানে, সাতটি এফআর অ্যালগরিদম রয়েছে
বাস্তবায়িত:

· ns3::LteFrNoOpঅ্যালগরিদম

· ns3::LteFrHard অ্যালগরিদম

· ns3::LteFrStrict অ্যালগরিদম

· ns3::LteFrSoft অ্যালগরিদম

· ns3::LteFfrSoft অ্যালগরিদম

· ns3::LteFfrএনহ্যান্সড অ্যালগরিদম

· ns3::LteFfrDistributedAlgorithm

একটি FR অ্যালগরিদম নির্বাচন এর মাধ্যমে সম্পন্ন করা হয় LteHelper বস্তু এবং তার SetFfrAlgorithmType
পদ্ধতি নীচে দেখানো হিসাবে:

Ptr lteHelper = CreateObject ();
lteHelper->SetFfrAlgorithmType ("ns3::LteFrHardAlgorithm");

প্রতিটি বাস্তবায়িত FR অ্যালগরিদম বিভিন্ন কনফিগারযোগ্য বৈশিষ্ট্য প্রদান করে। ব্যবহারকারীদের নেই
UL এবং DL ব্যান্ডউইথ কনফিগারেশনের যত্ন নেওয়ার জন্য, কারণ এটি স্বয়ংক্রিয়ভাবে সম্পন্ন হয়
সেল কনফিগারেশন। FR অ্যালগরিদমের জন্য ব্যান্ডউইথ পরিবর্তন করতে, এর জন্য প্রয়োজনীয় মানগুলি কনফিগার করুন৷
LteEnbNetDevice:

uint8_t ব্যান্ডউইথ = 100;
lteHelper->SetEnbDeviceAttribute ("DlBandwidth", UintegerValue (ব্যান্ডউইথ));
lteHelper->SetEnbDeviceAttribute ("UlBandwidth", UintegerValue (ব্যান্ডউইথ));

এখন, প্রতিটি এফআর অ্যালগরিদম কনফিগারেশন বর্ণনা করা হবে।

কঠিন ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম
ডিজাইন ডকুমেন্টেশনের সেক-ফ্র-হার্ড-অ্যালগরিদম বিভাগে বর্ণনা করা হয়েছে
ns3::LteFrHard অ্যালগরিদম একটি সাব-ব্যান্ড ব্যবহার করে। এই সাব-ব্যান্ড ব্যবহারকারীকে কনফিগার করার জন্য নির্দিষ্ট করতে হবে
অফসেট এবং ব্যান্ডউইথ DL এবং UL-এর জন্য RB-এর সংখ্যা।

হার্ড ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে:

· DlSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় ডাউনলিংক অফসেট

· DlSubBandwidth: সংখ্যায় ডাউনলিঙ্ক ট্রান্সমিশন সাবব্যান্ডউইথ কনফিগারেশন
রিসোর্স ব্লক গ্রুপ

· UlSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় আপলিংক অফসেট

· UlSubBandwidth: রিসোর্সের সংখ্যায় আপলিংক ট্রান্সমিশন সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

LteFrHardAlgorithm এর উদাহরণ কনফিগারেশন নিম্নলিখিত উপায়ে করা যেতে পারে:

lteHelper->SetFfrAlgorithmType ("ns3::LteFrHardAlgorithm");
lteHelper->SetFfrAlgorithmAttribute ("DlSubBandOffset", UintegerValue (8));
lteHelper->SetFfrAlgorithmAttribute ("DlSubBandwidth", UintegerValue (8));
lteHelper->SetFfrAlgorithmAttribute ("UlSubBandOffset", UintegerValue (8));
lteHelper->SetFfrAlgorithmAttribute ("UlSubBandwidth", UintegerValue (8));
NetDeviceContainer enbDevs = lteHelper->InstallEnbDevice (enbNodes.Get(0));

উপরের উদাহরণে eNB কে শুধুমাত্র DL এবং UL-তে 8 থেকে 16 পর্যন্ত RB ব্যবহার করার অনুমতি দেয়, যখন পুরো সেল
ব্যান্ডউইথ 25।

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

কঠোর ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে:

· UlCommonSubBandwidth: রিসোর্সের সংখ্যায় আপলিংক কমন সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· UlEdgeSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় আপলিংক এজ সাবব্যান্ড অফসেট

· UlEdgeSubBandwidth: রিসোর্সের সংখ্যায় আপলিংক এজ সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· DlCommonSubBandwidth: ডাউনলিঙ্ক কমন সাবব্যান্ডউইথ কনফিগারেশন সংখ্যায়
রিসোর্স ব্লক গ্রুপ

· DlEdgeSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় ডাউনলিঙ্ক এজ সাবব্যান্ড অফসেট

· DlEdgeSubBandwidth: রিসোর্সের সংখ্যায় ডাউনলিঙ্ক এজ সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· RsrqThreshold: RSRQ যদি এই থ্রেশহোল্ডের চেয়ে খারাপ হয়, তাহলে UE দিতে হবে
প্রান্ত সাব-ব্যান্ড

· সেন্টার পাওয়ারঅফসেট: PdschConfigDedicated::Pa মান কেন্দ্র সাব-ব্যান্ডের জন্য, ডিফল্ট মান
dB0

· এজপাওয়ারঅফসেট: PdschConfigDedicated::Edge সাব-ব্যান্ডের জন্য Pa মান, ডিফল্ট মান dB0

· CenterAreaTpc: TPC মান যা কেন্দ্র এলাকায় UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

· EdgeAreaTpc: TPC মান যা কিনা প্রান্তের ক্ষেত্রে UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

নিচের উদাহরণে eNB কে সাধারণ সাব-ব্যান্ড হিসেবে 0 থেকে 6 পর্যন্ত এবং 12 থেকে 18 পর্যন্ত RB ব্যবহার করার অনুমতি দেয়
DL এবং UL-তে ব্যক্তিগত সাব-ব্যান্ড, RSRQ থ্রেশহোল্ড 20 dB, কেন্দ্র এলাকায় শক্তি সমান
LteEnbPhy::TxPower - 3dB, প্রান্ত এলাকায় শক্তি সমান LteEnbPhy::TxPower + 3dB:

lteHelper->SetFfrAlgorithmType ("ns3::LteFrStrictAlgorithm");
lteHelper->SetFfrAlgorithmAttribute ("DlCommonSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("UlCommonSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("DlEdgeSubBandOffset", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("DlEdgeSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("UlEdgeSubBandOffset", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("UlEdgeSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("RsrqThreshold", UintegerValue (20));
lteHelper->SetFfrAlgorithmAttribute ("সেন্টার পাওয়ারঅফসেট",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB_3));
lteHelper->SetFfrAlgorithmAttribute ("EdgePowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB3));
lteHelper->SetFfrAlgorithmAttribute ("CenterAreaTpc", UintegerValue (1));
lteHelper->SetFfrAlgorithmAttribute ("EdgeAreaTpc", UintegerValue (2));
NetDeviceContainer enbDevs = lteHelper->InstallEnbDevice (enbNodes.Get(0));

কোমল ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম
সফট ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদমের সাথে, eNb সম্পূর্ণ সেল ব্যান্ডউইথ ব্যবহার করে, কিন্তু দুটি আছে
সাব-ব্যান্ড, UE-এর মধ্যে বিভিন্ন পাওয়ার লেভেল দিয়ে পরিবেশন করা হয়।

নরম ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে:

· UlEdgeSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় আপলিংক এজ সাবব্যান্ড অফসেট

· UlEdgeSubBandwidth: রিসোর্সের সংখ্যায় আপলিংক এজ সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· DlEdgeSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় ডাউনলিঙ্ক এজ সাবব্যান্ড অফসেট

· DlEdgeSubBandwidth: রিসোর্সের সংখ্যায় ডাউনলিঙ্ক এজ সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· CenterUeUseEdgeSubBand অনুমতি দিন: যদি সত্যিকারের কেন্দ্র UEগুলি প্রান্ত সাব-ব্যান্ড RBG গুলি পেতে পারে,
অন্যথায় প্রান্ত সাব-ব্যান্ড শুধুমাত্র প্রান্ত UE-এর জন্য অনুমোদিত, ডিফল্ট মান সত্য

· RsrqThreshold: RSRQ যদি এই থ্রেশহোল্ডের চেয়ে খারাপ হয়, তাহলে UE দিতে হবে
প্রান্ত সাব-ব্যান্ড

· সেন্টার পাওয়ারঅফসেট: PdschConfigDedicated::Pa মান কেন্দ্র সাব-ব্যান্ডের জন্য, ডিফল্ট মান
dB0

· এজপাওয়ারঅফসেট: PdschConfigDedicated::Edge সাব-ব্যান্ডের জন্য Pa মান, ডিফল্ট মান dB0

· CenterAreaTpc: TPC মান যা কেন্দ্র এলাকায় UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

· EdgeAreaTpc: TPC মান যা কিনা প্রান্তের ক্ষেত্রে UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

নীচের উদাহরণটি 8 থেকে 16 পর্যন্ত RB গুলিকে সেল এজ UE দ্বারা ব্যবহার করার জন্য কনফিগার করে এবং এই সাব-ব্যান্ডটি হল
সেল সেন্টার ব্যবহারকারীদের জন্য উপলব্ধ নয়। RSRQ থ্রেশহোল্ড 20 dB, কেন্দ্র এলাকায় শক্তি সমান
LteEnbPhy::TxPower, প্রান্ত এলাকায় শক্তি সমান LteEnbPhy::TxPower + 3dB:

lteHelper->SetFfrAlgorithmType ("ns3::LteFrSoftAlgorithm");
lteHelper->SetFfrAlgorithmAttribute ("DlEdgeSubBandOffset", UintegerValue (8));
lteHelper->SetFfrAlgorithmAttribute ("DlEdgeSubBandwidth", UintegerValue (8));
lteHelper->SetFfrAlgorithmAttribute ("UlEdgeSubBandOffset", UintegerValue (8));
lteHelper->SetFfrAlgorithmAttribute ("UlEdgeSubBandwidth", UintegerValue (8));
lteHelper->SetFfrAlgorithmAttribute ("AllowCenterUeUseEdgeSubBand", বুলিয়ান ভ্যালু (মিথ্যা));
lteHelper->SetFfrAlgorithmAttribute ("RsrqThreshold", UintegerValue (20));
lteHelper->SetFfrAlgorithmAttribute ("সেন্টার পাওয়ারঅফসেট",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB0));
lteHelper->SetFfrAlgorithmAttribute ("EdgePowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB3));
NetDeviceContainer enbDevs = lteHelper->InstallEnbDevice (enbNodes.Get(0));

কোমল টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম
সফট ফ্র্যাকশনাল ফ্রিকোয়েন্সি রিইউজ (SFFR) তিনটি সাব-ব্যান্ড ব্যবহার করে: কেন্দ্র, মাঝারি (সাধারণ) এবং
প্রান্ত ব্যবহারকারীকে তাদের মধ্যে শুধুমাত্র দুটি কনফিগার করতে হবে: সাধারণ এবং প্রান্ত। কেন্দ্র সাব-ব্যান্ড হবে
অবশিষ্ট ব্যান্ডউইথ থেকে গঠিত. প্রতিটি সাব-ব্যান্ড ভিন্ন ভিন্ন সঙ্গে পরিবেশন করা যেতে পারে
সংক্রমণ শক্তি। যেহেতু তিনটি সাব-ব্যান্ড আছে, তাই দুটি RSRQ থ্রেশহোল্ড হওয়া দরকার
কনফিগার করা হয়েছে।

নরম ভগ্নাংশ ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে:

· UlCommonSubBandwidth: রিসোর্সের সংখ্যায় আপলিংক কমন সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· UlEdgeSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় আপলিংক এজ সাবব্যান্ড অফসেট

· UlEdgeSubBandwidth: রিসোর্সের সংখ্যায় আপলিংক এজ সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· DlCommonSubBandwidth: ডাউনলিঙ্ক কমন সাবব্যান্ডউইথ কনফিগারেশন সংখ্যায়
রিসোর্স ব্লক গ্রুপ

· DlEdgeSubBandOffset: রিসোর্স ব্লক গ্রুপের সংখ্যায় ডাউনলিঙ্ক এজ সাবব্যান্ড অফসেট

· DlEdgeSubBandwidth: রিসোর্সের সংখ্যায় ডাউনলিঙ্ক এজ সাবব্যান্ডউইথ কনফিগারেশন
ব্লক গ্রুপ

· CenterRsrqThreshold: RSRQ যদি এই থ্রেশহোল্ডের চেয়ে খারাপ হয়, UE পরিবেশন করা উচিত
মাঝারি সাব-ব্যান্ডে

· EdgeRsrqThreshold: RSRQ যদি এই থ্রেশহোল্ডের চেয়ে খারাপ হয়, UE পরিবেশন করা উচিত
এজ সাব-ব্যান্ডে

· CenterAreaPowerOffset: PdschConfigDedicated::Pa মান কেন্দ্র সাব-ব্যান্ডের জন্য, ডিফল্ট
মান dB0

· MediumAreaPowerOffset: PdschConfigDedicated::Pa মান মাঝারি সাব-ব্যান্ডের জন্য, ডিফল্ট
মান dB0

· EdgeAreaPowerOffset: PdschConfigDedicated::Edge সাব-ব্যান্ডের জন্য Pa মান, ডিফল্ট মান
dB0

· CenterAreaTpc: TPC মান যা কেন্দ্র এলাকায় UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

· MediumAreaTpc: TPC মান যা DL-DCI-এ মাঝারি এলাকার UE-এর জন্য সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

· EdgeAreaTpc: TPC মান যা কিনা প্রান্তের ক্ষেত্রে UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

উদাহরণে নীচে 0 থেকে 6 পর্যন্ত RBগুলি সাধারণ (মাঝারি) সাব-ব্যান্ড হিসাবে ব্যবহৃত হবে, 6 থেকে RB
12 এজ সাব-ব্যান্ড হিসাবে ব্যবহার করা হবে এবং 12 থেকে 24 পর্যন্ত RBগুলি কেন্দ্র সাব-ব্যান্ড হিসাবে ব্যবহার করা হবে (এটি
অবশিষ্ট আরবি দিয়ে গঠিত)। কেন্দ্র এবং মাঝারি এলাকার মধ্যে RSRQ থ্রেশহোল্ড হল 28 dB,
মাঝারি এবং প্রান্ত এলাকার মধ্যে RSRQ থ্রেশহোল্ড হল 18 ডিবি। কেন্দ্র এলাকায় শক্তি সমান
LteEnbPhy::TxPower - 3dB, মাঝারি এলাকায় শক্তি সমান LteEnbPhy::TxPower + 3dB, পাওয়ার ইন
প্রান্ত এলাকা সমান LteEnbPhy::TxPower + 3dB:

lteHelper->SetFfrAlgorithmType ("ns3::LteFfrSoftAlgorithm");
lteHelper->SetFfrAlgorithmAttribute ("UlCommonSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("DlCommonSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("DlEdgeSubBandOffset", UintegerValue (0));
lteHelper->SetFfrAlgorithmAttribute ("DlEdgeSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("UlEdgeSubBandOffset", UintegerValue (0));
lteHelper->SetFfrAlgorithmAttribute ("UlEdgeSubBandwidth", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("CenterRsrqThreshold", UintegerValue (28));
lteHelper->SetFfrAlgorithmAttribute ("EdgeRsrqThreshold", UintegerValue (18));
lteHelper->SetFfrAlgorithmAttribute ("CenterAreaPowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB_3));
lteHelper->SetFfrAlgorithmAttribute ("MediumAreaPowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB0));
lteHelper->SetFfrAlgorithmAttribute ("EdgeAreaPowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB3));
NetDeviceContainer enbDevs = lteHelper->InstallEnbDevice (enbNodes.Get(0));

বর্ধিত টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম
বর্ধিত ফ্র্যাকশনাল ফ্রিকোয়েন্সি রিইউজ (EFFR) প্রতিটি কক্ষের জন্য সিস্টেম ব্যান্ডউইথের সংরক্ষিত অংশ
(সাধারণত 3টি কোষের ধরন থাকে এবং প্রতিটি সিস্টেম ব্যান্ডউইথের 1/3 পায়)। তারপর অংশ
এই সাবব্যান্ডউইথ এটি হিসাবে ব্যবহৃত হয় প্রাথমিক রেখাংশ পুনঃব্যবহারের ফ্যাক্টর 3 এবং হিসাবে মাধ্যমিক রেখাংশ
পুনঃব্যবহারের ফ্যাক্টর সহ 1. ব্যবহারকারীকে সেল সাবব্যান্ডউইথের অফসেট (DL এবং UL এর জন্য) কনফিগার করতে হবে
RB এর সংখ্যা, RB এর সংখ্যা যা হিসাবে ব্যবহার করা হবে প্রাথমিক রেখাংশ এবং RB এর সংখ্যা যা
হিসাবে ব্যবহার করা হবে মাধ্যমিক রেখাংশ. প্রাথমিক রেখাংশ ইচ্ছামত সেল দ্বারা ব্যবহৃত হয়, কিন্তু থেকে RBs
মাধ্যমিক রেখাংশ শুধুমাত্র UE-কে বরাদ্দ করা যেতে পারে এই UE থেকে CQI ফিডব্যাক বেশি
কনফিগার করা CQI থ্রেশহোল্ডের চেয়ে মান। UE কে প্রান্ত UE হিসাবে বিবেচনা করা হয় যখন এর RSRQ কম হয়
চেয়ে RsrqThreshold.

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

উন্নত ভগ্নাংশ ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে:

· UlSubBandOffset: রিসোর্স ব্লকের সংখ্যায় এই সেলের জন্য আপলিংক সাবব্যান্ড অফসেট
গ্রুপ

· UlReuse3SubBandwidth: আপলিংক পুনঃব্যবহার 3 সাবব্যান্ডউইথ কনফিগারেশন রিসোর্সের সংখ্যায়
ব্লক গ্রুপ

· UlReuse1SubBandwidth: আপলিংক পুনঃব্যবহার 1 সাবব্যান্ডউইথ কনফিগারেশন রিসোর্সের সংখ্যায়
ব্লক গ্রুপ

· DlSubBandOffset: রিসোর্স ব্লকের সংখ্যায় এই সেলের জন্য ডাউনলিঙ্ক সাবব্যান্ড অফসেট
গ্রুপ

· DlReuse3 সাবব্যান্ডউইথ: ডাউনলিঙ্ক পুনঃব্যবহার 3 সাবব্যান্ডউইথ কনফিগারেশন সংখ্যায়
রিসোর্স ব্লক গ্রুপ

· DlReuse1 সাবব্যান্ডউইথ: ডাউনলিঙ্ক পুনঃব্যবহার 1 সাবব্যান্ডউইথ কনফিগারেশন সংখ্যায়
রিসোর্স ব্লক গ্রুপ

· RsrqThreshold: RSRQ যদি এই থ্রেশহোল্ডের চেয়ে খারাপ হয়, তাহলে UE দিতে হবে
প্রান্ত সাব-ব্যান্ড

· CenterAreaPowerOffset: PdschConfigDedicated::Pa মান কেন্দ্র সাব-ব্যান্ডের জন্য, ডিফল্ট
মান dB0

· EdgeAreaPowerOffset: PdschConfigDedicated::Edge সাব-ব্যান্ডের জন্য Pa মান, ডিফল্ট মান
dB0

· DlCqiThreshold: RBG এর জন্য DL-CQI এই প্রান্তিকের চেয়ে বেশি হলে, সংক্রমণ
RBG এ সম্ভব

· UlCqiThreshold: RBG-এর জন্য UL-CQI এই প্রান্তিকের চেয়ে বেশি হলে, সংক্রমণ
RBG এ সম্ভব

· CenterAreaTpc: TPC মান যা কেন্দ্র এলাকায় UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

· EdgeAreaTpc: TPC মান যা কিনা প্রান্তের ক্ষেত্রে UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

নিচের উদাহরণে DL এবং UL-এ অফসেট হল 0 RB, 4 RB ব্যবহার করা হবে প্রাথমিক রেখাংশ এবং
মাধ্যমিক রেখাংশ. কেন্দ্র এবং প্রান্ত এলাকার মধ্যে RSRQ থ্রেশহোল্ড হল 25 ডিবি। DL এবং UL CQI
থ্রেশহোল্ড 10 এর মান নির্ধারণ করা হয়। কেন্দ্র এলাকায় শক্তি সমান LteEnbPhy::TxPower - 6dB,
প্রান্ত এলাকায় শক্তি সমান LteEnbPhy::TxPower + 0dB:

lteHelper->SetFfrAlgorithmType("ns3::LteFfrEnhancedAlgorithm");
lteHelper->SetFfrAlgorithmAttribute("RsrqThreshold", UintegerValue (25));
lteHelper->SetFfrAlgorithmAttribute("DlCqiThreshold", UintegerValue (10));
lteHelper->SetFfrAlgorithmAttribute("UlCqiThreshold", UintegerValue (10));
lteHelper->SetFfrAlgorithmAttribute("CenterAreaPowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB_6));
lteHelper->SetFfrAlgorithmAttribute("EdgeAreaPowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB0));
lteHelper->SetFfrAlgorithmAttribute("UlSubBandOffset", UintegerValue (0));
lteHelper->SetFfrAlgorithmAttribute("UlReuse3SubBandwidth", UintegerValue (4));
lteHelper->SetFfrAlgorithmAttribute("UlReuse1SubBandwidth", UintegerValue (4));
lteHelper->SetFfrAlgorithmAttribute("DlSubBandOffset", UintegerValue (0));
lteHelper->SetFfrAlgorithmAttribute("DlReuse3SubBandwidth", UintegerValue (4));
lteHelper->SetFfrAlgorithmAttribute("DlReuse1SubBandwidth", UintegerValue (4));

বণ্টিত টুকরার ন্যায় ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম
বিতরণকৃত ভগ্নাংশের ফ্রিকোয়েন্সি পুনঃব্যবহারের জন্য সমস্ত eNB-এর মধ্যে X2 ইন্টারফেস প্রয়োজন
ইনস্টল করা EPC কনফিগার করা হলেই X2 ইন্টারফেস ইনস্টল করা যাবে, তাই এই FFR স্কিম
শুধুমাত্র EPC পরিস্থিতিতে ব্যবহার করা যেতে পারে।

ডিস্ট্রিবিউটেড ফ্র্যাকশনাল ফ্রিকোয়েন্সি রিইউজ অ্যালগরিদমের সাথে, eNb সম্পূর্ণ সেল ব্যান্ডউইথ ব্যবহার করে এবং
দুটি সাব-ব্যান্ড থাকতে পারে: সেন্টার সাব-ব্যান্ড এবং এজ সাব-ব্যান্ড। এই সাব-ব্যান্ড UE-এর মধ্যে
বিভিন্ন শক্তি স্তরের সাথে পরিবেশন করা যেতে পারে। অ্যালগরিদম অভিযোজিতভাবে সেল-এজের জন্য RBs নির্বাচন করে
সংলগ্ন কোষ থেকে সমন্বয় তথ্য (যেমন RNTP) ভিত্তিতে সাব-ব্যান্ড এবং বিজ্ঞপ্তি
সংলগ্ন কক্ষগুলির বেস স্টেশনগুলি, যেটিকে এটি এজ সাব-ব্যান্ডে ব্যবহার করার জন্য RBs নির্বাচন করেছে৷ যদি
কক্ষে প্রান্ত UE হিসাবে কোন UE শ্রেণীবদ্ধ নেই, eNB প্রান্ত সাব-ব্যান্ড হিসাবে কোন RB ব্যবহার করবে না।

ডিস্ট্রিবিউটেড ফ্র্যাকশনাল ফ্রিকোয়েন্সি রিইউজ অ্যালগরিদম নিম্নলিখিত বৈশিষ্ট্যগুলি প্রদান করে:

· গণনার ব্যবধান: এজ সাব-ব্যান্ডের গণনার মধ্যে সময়ের ব্যবধান, ডিফল্ট
মান 1 সেকেন্ড

· RsrqThreshold: RSRQ যদি এই থ্রেশহোল্ডের চেয়ে খারাপ হয়, তাহলে UE দিতে হবে
প্রান্ত সাব-ব্যান্ড

· RsrpDifferenceThreshold: পাওয়ার সিগন্যালের মধ্যে পার্থক্য থাকলে
সার্ভিং সেল থেকে UE এবং সংলগ্ন থেকে প্রাপ্ত সংকেতের শক্তি দ্বারা
সেল একটি RsrpDifferenceThreshold মানের থেকে কম, কোষের ওজন বৃদ্ধি পেয়েছে৷

· সেন্টার পাওয়ারঅফসেট: PdschConfigDedicated::Edge সাব-ব্যান্ডের জন্য Pa মান, ডিফল্ট মান
dB0

· এজপাওয়ারঅফসেট: PdschConfigDedicated::Edge সাব-ব্যান্ডের জন্য Pa মান, ডিফল্ট মান dB0

· EdgeRbNum: এজ সাব-ব্যান্ডে ব্যবহার করা যেতে পারে এমন RB-এর সংখ্যা

· CenterAreaTpc: TPC মান যা কেন্দ্র এলাকায় UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

· EdgeAreaTpc: TPC মান যা কিনা প্রান্তের ক্ষেত্রে UE-এর জন্য DL-DCI-এ সেট করা হবে, পরম৷
মোড ব্যবহার করা হয়, ডিফল্ট মান 1 TS1 সারণি 36.213-5.1.1.1 অনুযায়ী -2 এ ম্যাপ করা হয়

নীচের উদাহরণ হিসাবে গণনার ব্যবধান হল 500 ms। কেন্দ্র এবং প্রান্তের মধ্যে RSRQ থ্রেশহোল্ড
এলাকা হল 25। RSRP পার্থক্য থ্রেশহোল্ড 5 হতে সেট করা হয়েছে। DL এবং UL 6 RB-এ ব্যবহার করা হবে
প্রান্ত সাব-ব্যান্ড প্রতিটি কোষ. কেন্দ্র এলাকায় শক্তি সমান LteEnbPhy::TxPower - 0dB, শক্তি
প্রান্ত এলাকায় সমান LteEnbPhy::TxPower + 3dB:

lteHelper->SetFfrAlgorithmType("ns3::LteFfrDistributedAlgorithm");
lteHelper->SetFfrAlgorithmAttribute("Calculation Interval", TimeValue(মিলি সেকেন্ড(500)));
lteHelper->SetFfrAlgorithmAttribute ("RsrqThreshold", UintegerValue (25));
lteHelper->SetFfrAlgorithmAttribute ("RsrpDifferenceThreshold", UintegerValue (5));
lteHelper->SetFfrAlgorithmAttribute ("EdgeRbNum", UintegerValue (6));
lteHelper->SetFfrAlgorithmAttribute ("সেন্টার পাওয়ারঅফসেট",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB0));
lteHelper->SetFfrAlgorithmAttribute ("EdgePowerOffset",
UintegerValue (LteRrcSap::PdschConfigDedicated::dB3));

স্বয়ংক্রিয় কনফিগারেশন
ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদমগুলিকে শুধুমাত্র সেট করে আরও "স্বয়ংক্রিয়" উপায়ে কনফিগার করা যেতে পারে
ব্যান্ডউইথ এবং FrCellTypeId। FR ইনস্ট্যান্সের আরম্ভ করার সময়, এর জন্য কনফিগারেশন
সেট ব্যান্ডউইথ এবং FrCellTypeId কনফিগারেশন টেবিল থেকে নেওয়া হবে। এটা গুরুত্বপূর্ণ
যে শুধুমাত্র সাব-ব্যান্ড কনফিগার করা হবে, থ্রেশহোল্ড এবং ট্রান্সমিশন পাওয়ার সেট করা হবে
ডিফল্ট মান। যদি কেউ চান, তিনি শো হিসাবে থ্রেশহোল্ড এবং ট্রান্সমিশন পাওয়ার পরিবর্তন করতে পারেন
পূর্ববর্তী উপ-বিভাগে।

তিনটি FrCellTypeId আছে: 1, 2, 3, যা তিনটি ভিন্ন কনফিগারেশনের সাথে মিলে যায়
প্রতিটি ব্যান্ডউইথের জন্য। তিনটি কনফিগারেশন বিভিন্ন কনফিগারেশনের অনুমতি দেয়
ষড়ভুজ eNB বিন্যাসে প্রতিবেশী কক্ষ। ব্যবহারকারীর প্রয়োজন হলে আরও ভিন্ন
প্রতিবেশী কক্ষের জন্য কনফিগারেশন, তাকে ম্যানুয়াল কনফিগারেশন ব্যবহার করতে হবে।

নীচের উদাহরণ স্বয়ংক্রিয় FR অ্যালগরিদম কনফিগারেশন দেখায়:

lteHelper->SetFfrAlgorithmType("ns3::LteFfrSoftAlgorithm");
lteHelper->SetFfrAlgorithmAttribute("FrCellTypeId", UintegerValue (1));
NetDeviceContainer enbDevs = lteHelper->InstallEnbDevice (enbNodes.Get(0));

আপলিংক ক্ষমতা নিয়ন্ত্রণ
আপলিংক পাওয়ার কন্ট্রোল কার্যকারিতা ডিফল্টরূপে সক্রিয় করা হয়। ব্যবহারকারী সেট করে এটি নিষ্ক্রিয় করতে পারেন
বুলিয়ান বৈশিষ্ট্য ns3::LteUePhy::EnableUplinkPowerControl সত্য থেকে

ব্যবহারকারী ওপেন লুপ পাওয়ার কন্ট্রোল এবং ক্লোজড লুপ পাওয়ার কন্ট্রোল মেকানিজমের মধ্যে স্যুইচ করতে পারেন
বুলিয়ান অ্যাট্রিবিউট সেট করে ns3::LteUePowerControl::ClosedLoop. ডিফল্টরূপে বন্ধ
সঞ্চয় মোড সহ লুপ পাওয়ার কন্ট্রোল সক্ষম।

পাথ-লস হল আপলিংক পাওয়ার কন্ট্রোলের মূল উপাদান। এটি মধ্যে পার্থক্য হিসাবে গণনা করা হয়
ফিল্টার করা RSRP এবং ReferenceSignalPower প্যারামিটার। রেফারেন্স সিগন্যাল পাওয়ার SIB2 এর সাথে পাঠানো হয়।

আপলিংক পাওয়ার কন্ট্রোলে উপলব্ধ বৈশিষ্ট্যগুলি:

· বদ্ধ চক্র: যদি সত্য বন্ধ লুপ আপলিংক পাওয়ার কন্ট্রোল মোড সক্ষম হয় এবং লুপ খুলুন
পাওয়ার কন্ট্রোল অন্যথায়, ডিফল্ট মান মিথ্যা

· সঞ্চয়ন সক্ষম: যদি সত্য সঞ্চয় মোড সক্রিয় করা হয় এবং পরম মোড
অন্যথায়, ডিফল্ট মান মিথ্যা

· আরম্ভ: পথ ক্ষতি ক্ষতিপূরণ ফ্যাক্টর, ডিফল্ট মান হল 1.0

· পিসিমিন: সর্বনিম্ন UE TxPower, ডিফল্ট মান হল -40 dBm৷

· পিসিম্যাক্স: সর্বাধিক UE TxPower, ডিফল্ট মান হল 23 dBm৷

· PoNominalPusch: এই পরামিতি উচ্চ স্তর দ্বারা সেট করা উচিত, কিন্তু বর্তমানে এটি প্রয়োজন
অ্যাট্রিবিউট সিস্টেম দ্বারা কনফিগার করার জন্য, সম্ভাব্য মানগুলি পরিসরে পূর্ণসংখ্যা (-126 ...
24), ডিফল্ট মান হল -80

· PoUePusch: এই পরামিতি উচ্চ স্তর দ্বারা সেট করা উচিত, কিন্তু বর্তমানে এটি প্রয়োজন
অ্যাট্রিবিউট সিস্টেম দ্বারা কনফিগার করা, সম্ভাব্য মানগুলি পরিসরে পূর্ণসংখ্যা (-8 ... 7),
ডিফল্ট মান 0

· PsrsOffset: এই পরামিতি উচ্চ স্তর দ্বারা সেট করা উচিত, কিন্তু বর্তমানে এটি প্রয়োজন
অ্যাট্রিবিউট সিস্টেম দ্বারা কনফিগার করা, সম্ভাব্য মানগুলি পরিসরে পূর্ণসংখ্যা (0 ... 15),
ডিফল্ট মান হল 7, যা দেয় P_Srs_Offset_Value = 0

আঁকা মূল্যবোধ in আপলিংক ক্ষমতা কন্ট্রোল:

· ReportPuschTxPower: PUSCH এর জন্য বর্তমান UE TxPower

· ReportPucchTxPower: PUCCH এর জন্য বর্তমান UE TxPower

· ReportSrsTxPower: SRS-এর জন্য বর্তমান UE TxPower

উদাহরণ কনফিগারেশন নীচে উপস্থাপন করা হয়:

Config::SetDefault ("ns3::LteUePhy::EnableUplinkPowerControl", বুলিয়ান ভ্যালু (সত্য));
Config::SetDefault ("ns3::LteEnbPhy::TxPower", DoubleValue (30));
Config::SetDefault ("ns3::LteUePowerControl::ClosedLoop", BooleanValue (true));
Config::SetDefault ("ns3::LteUePowerControl::Accumulation Enabled", BooleanValue (true));

উদাহরণ হিসেবে, ব্যবহারকারী লেনা-আপলিংক-পাওয়ার-কন্ট্রোল প্রোগ্রামটি দেখে নিতে পারেন।

উদাহরণ প্রোগ্রাম
ডিরেক্টরি src/lte/উদাহরণ/ কিছু উদাহরণ সিমুলেশন প্রোগ্রাম রয়েছে যা দেখায় কিভাবে করতে হয়
বিভিন্ন LTE পরিস্থিতি অনুকরণ করুন।

উল্লেখ পরিস্থিতিতে
এখানে প্রচুর পরিমাণে রেফারেন্স এলটিই সিমুলেশন পরিস্থিতিতে পাওয়া যাবে
সাহিত্য এখানে আমরা তাদের কিছু তালিকাবদ্ধ করি:

· [TR2] এর A.36814 অনুচ্ছেদে উল্লিখিত সিস্টেম সিমুলেশন পরিস্থিতি।

· ডুয়াল স্ট্রাইপ মডেল [R4-092042], যা উদাহরণে আংশিকভাবে প্রয়োগ করা হয়েছে
কার্যক্রম src/lte/examples/lena-dual-stripe.cc. এই উদাহরণ প্রোগ্রাম অনেক বৈশিষ্ট্য
কনফিগারযোগ্য পরামিতি যা সংশ্লিষ্ট গ্লোবাল পরিবর্তন করে কাস্টমাইজ করা যেতে পারে
ভেরিয়েবল এই সমস্ত গ্লোবাল ভেরিয়েবলের একটি তালিকা পেতে, আপনি এই কমান্ডটি চালাতে পারেন:

./waf --run lena-dual-stripe --command-template="%s --PrintGlobals"

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

হস্তান্তর ব্যাজ প্রচারণা
এই উপধারায়, আমরা ব্যবহার করে একটি সিমুলেশন প্রচার চালানোর একটি উদাহরণ প্রদর্শন করব
এর LTE মডিউল ns-3. প্রচারের উদ্দেশ্য হল প্রতিটির প্রভাব তুলনা করা
LTE মডিউলের অন্তর্নির্মিত হ্যান্ডওভার অ্যালগরিদম।

প্রচারে ব্যবহার করা হবে লেনা-দ্বৈত-ডোরা উদাহরণ প্রোগ্রাম। প্রথমত, আমাদের পরিবর্তন করতে হবে
আমাদের প্রয়োজনীয় আউটপুট তৈরি করার উদাহরণ প্রোগ্রাম। এই সুযোগে আমরা উৎপাদন করতে চাই
হ্যান্ডওভারের সংখ্যা, ব্যবহারকারীর গড় থ্রুপুট এবং গড় SINR।

হস্তান্তরের সংখ্যা গণনা করে প্রাপ্ত করা যেতে পারে বার সংখ্যা হস্তান্তরEndOk
হস্তান্তর পদাঙ্ক বহিস্কার করা হয় তারপর ব্যবহারকারী গড় থ্রুপুট সক্রিয় করে প্রাপ্ত করা যেতে পারে
RLC ব্যাজ আউটপুট. অবশেষে, PHY সিমুলেশন সক্ষম করে SINR প্রাপ্ত করা যেতে পারে
আউটপুট নিম্নলিখিত নমুনা কোড স্নিপেট উপরের প্রাপ্ত করার একটি সম্ভাব্য উপায় দেখায়:

অকার্যকর
NotifyHandoverEndOkUe (std::স্ট্রিং প্রসঙ্গ, uint64_t imsi,
uint16_t সেলআইডি, uint16_t rnti)
{
std::cout << "হ্যান্ডওভার IMSI" << imsi << std::endl;
}

কোন int
প্রধান (int argc, char *argv[])
{
/*** SNIP ***/

কনফিগ::কানেক্ট ("/NodeList/*/DeviceList/*/LteUeRrc/HandoverEndOk",
মেককলব্যাক (&NotifyHandoverEndOkUe));

lteHelper->EnablePhyTraces ();
lteHelper->EnableRlcTraces ();
Ptr rlcStats = lteHelper->GetRlcStats ();
rlcStats->SetAttribute ("StartTime", TimeValue (সেকেন্ড (0)));
rlcStats->SetAttribute ("EpochDuration", TimeValue (সেকেন্ড (simTime)));

সিমুলেটর::রান ();
সিমুলেটর::ধ্বংস ();
ফিরে 0;
}

তারপর আমাদের সিমুলেশন প্রয়োজন অনুসারে প্রোগ্রামের প্যারামিটারগুলি কনফিগার করতে হবে। আমরা
আমাদের সিমুলেশনে নিম্নলিখিত অনুমানগুলি খুঁজছেন:

· ষড়ভুজাকারে ত্রি-ক্ষেত্রযুক্ত ম্যাক্রো eNodeBs (অর্থাৎ 7টি ম্যাক্রোসেল) এর 21 টি সাইট স্থাপন করা হয়েছে
500 মিটার আন্তঃ-সাইট দূরত্ব সহ লেআউট।

· যদিও লেনা-দ্বৈত-ডোরা মূলত একটি দ্বি-স্তরের (ম্যাক্রোসেল এবং
ফেমটোসেল) সিমুলেশন, আমরা আমাদের সিমুলেশনকে এক-স্তর (ম্যাক্রোসেল) সহজ করব
শুধুমাত্র সিমুলেশন।

· UE এলোমেলোভাবে সাইটের চারপাশে বিতরণ করা হয় এবং স্বয়ংক্রিয়ভাবে নেটওয়ার্কের সাথে সংযুক্ত হয়
নিষ্ক্রিয় মোড সেল নির্বাচন ব্যবহার করে। এর পরে, UE সিমুলেশন পরিবেশে ঘুরবে
60 কিমি প্রতি ঘন্টা গতির সাথে।

· 50 সেকেন্ডের সিমুলেশন সময়কাল, তাই কিছু ট্রিগার করার জন্য UEগুলি যথেষ্ট দূরত্ব অতিক্রম করেছে
হস্তান্তর

· 46 dBm ম্যাক্রোসেল Tx শক্তি এবং 10 dBm UE Tx শক্তি।

· EPC মোড ব্যবহার করা হবে কারণ X2 হস্তান্তর পদ্ধতির জন্য এটি সক্রিয় করা প্রয়োজন।

· ফুল-বাফার ডাউনলিংক এবং আপলিংক ট্রাফিক, উভয়ই 5 MHz ব্যান্ডউইথের মধ্যে, TCP প্রোটোকল ব্যবহার করে
এবং সমানুপাতিক ফেয়ার সময়সূচী.

· আদর্শ RRC প্রোটোকল।

টেবিল লেনা-দ্বৈত-ডোরা স্থিতিমাপ কনফিগারেশন উন্নত হস্তান্তর প্রচারণা নীচে আমরা কিভাবে দেখায়
এর পরামিতি কনফিগার করুন লেনা-দ্বৈত-ডোরা উপরের অনুমানগুলি অর্জন করতে।

লেনা-দ্বৈত-ডোরা স্থিতিমাপ কনফিগারেশন উন্নত হস্তান্তর প্রচারণা
┌───────────────────┬─────────────── ────────── ───────┐
│প্যারামিটারের নাম │ মান │ বর্ণনা │
├──────────────────┼───────────────────── ────────── ───────┤
│সিমটাইম │ 50 │ 50 সেকেন্ড সিমুলেশন │
│ │ │ সময়কাল │
├──────────────────┼───────────────────── ────────── ───────┤
│nব্লক │ 0 │ অ্যাপার্টমেন্ট নিষ্ক্রিয় করা │৷
│ │ │ ভবন এবং ফেমটোসেল │
├──────────────────┼───────────────────── ────────── ───────┤
│nMacroEnbSites │ 7 │ ম্যাক্রোসেলের সংখ্যা │
│ │ │ সাইট (প্রতিটি সাইটে 3 │ আছে
│ │ │ কোষ) │
├──────────────────┼───────────────────── ────────── ───────┤
│nMacroEnbSitesX │ 2 │ ম্যাক্রোসেল সাইট │ হবে
│ │ │ একটি 2-3-2 │ এ অবস্থান করুন
│ │ │ গঠন │
├──────────────────┼───────────────────── ────────── ───────┤
│ আন্তঃসাইট দূরত্ব │ 500 │ 500 মিটার মধ্যে দূরত্ব │
│ │ │ সংলগ্ন ম্যাক্রোসেল সাইট │
├──────────────────┼───────────────────── ────────── ───────┤
প্রতিটি │ এর জন্য │macroEnbTxPowerDbm │ 46 │ 46 dBm Tx শক্তি
│ │ │ ম্যাক্রোসেল │
├──────────────────┼───────────────────── ────────── ───────┤
│epc │ 1 │ EPC মোড সক্ষম করুন │৷
└──────────────────┴- ────────── ───────┘

│epcDl │ 1 │ পূর্ণ-বাফার DL │ সক্ষম করুন
│ │ │ ট্রাফিক │
├──────────────────┼───────────────────── ────────── ───────┤
│epcUl │ 1 │ পূর্ণ-বাফার UL সক্ষম করুন │
│ │ │ ট্রাফিক │
├──────────────────┼───────────────────── ────────── ───────┤
│useUdp │ 0 │ UDP ট্র্যাফিক অক্ষম করুন এবং │
│ │ │ পরিবর্তে TCP সক্ষম করুন │৷
├──────────────────┼───────────────────── ────────── ───────┤
│macroUeDensity │ 0.00002 │ UE এর সংখ্যা নির্ধারণ করে │
│ │ │ (48 UE-এ │ অনুবাদ করে
│ │ │ আমাদের সিমুলেশন) │
├──────────────────┼───────────────────── ────────── ───────┤
│outdoorUeMinSpeed ​​│ 16.6667 │ ন্যূনতম UE চলাচল │
│ │ │ গতি m/s (60 kmph) │
├──────────────────┼───────────────────── ────────── ───────┤
│outdoorUeMaxSpeed ​​│ 16.6667 │ সর্বোচ্চ UE চলাচল │
│ │ │ গতি m/s (60 kmph) │
├──────────────────┼───────────────────── ────────── ───────┤
│macroEnbBandwidth │ 25 │ 5 MHz DL এবং UL │
│ │ │ ব্যান্ডউইথ │
├──────────────────┼───────────────────── ────────── ───────┤
│জেনারেট রেম │ 1 │ (ঐচ্ছিক) প্লট করার জন্য │
│ │ │ রেডিও পরিবেশ │
│ │ │ মানচিত্র │
└──────────────────┴- ────────── ───────┘

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

ওভাররাইডিং ডিফল্ট বৈশিষ্ট্যাবলী উন্নত হস্তান্তর প্রচারণা
┌───────────────────────────────────── ────────── ────┬──────────────────────────────── ────────── ──────────────┐
├────────────────────────────────────────── ────────── ────┼─────────────────────────────────── ────────── ──────────────┤
│ns3::LteHelper::Handover Algorithm │ ns3::NoOpHandover অ্যালগরিদম, │ হস্তান্তরের পছন্দ │৷
│ │ ns3::A3Rsrpহ্যান্ডওভার অ্যালগরিদম, │ অ্যালগরিদম │
│ │ ns3::A2A4RsrqHandover অ্যালগরিদম │ │
├────────────────────────────────────────── ────────── ────┼─────────────────────────────────── ────────── ──────────────┤
│ns3::LteHelper::Seduler │ ns3::PfFfMacScheduler │ আনুপাতিক মেলা │
├────────────────────────────────────────── ────────── ────┼─────────────────────────────────── ────────── ──────────────┤
├────────────────────────────────────────── ────────── ────┼─────────────────────────────────── ────────── ──────────────┤
│ns3::RadioBearerStatsCalculator::DlRlcOutputFilename │ -DlRlcStats.txt │ DL RLC এর জন্য ফাইলের নাম │
├────────────────────────────────────────── ────────── ────┼─────────────────────────────────── ────────── ──────────────┤
│ns3::RadioBearerStatsCalculator::UlRlcOutputFilename │ -UlRlcStats.txt │ UL RLC এর জন্য ফাইলের নাম │
├────────────────────────────────────────── ────────── ────┼─────────────────────────────────── ────────── ──────────────┤
│ns3::PhyStatsCalculator::DlRsrpSinrFilename │ -DlRsrpSinrStats.txt │ DL PHY এর জন্য ফাইলের নাম │
├────────────────────────────────────────── ────────── ────┼─────────────────────────────────── ────────── ──────────────┤
│ns3::PhyStatsCalculator::UlSinrFilename │ -UlSinrStats.txt │ UL PHY-এর জন্য ফাইলের নাম │
└────────────────────────────────── ────────── ────┴─────────────────────────── ────────── ──────────────┘

ns-3 একটি সিমুলেশনে কনফিগারেশন মান পাস করার জন্য অনেক উপায় প্রদান করে। এই
উদাহরণস্বরূপ, আমরা কমান্ড লাইন আর্গুমেন্ট ব্যবহার করব। এটি মূলত যুক্ত করে করা হয়
পরামিতি এবং তাদের মান ওয়াফ প্রতিটি পৃথক সিমুলেশন শুরু করার সময় কল করুন। তাই
দ্য ওয়াফ আমাদের 3টি সিমুলেশন আহ্বান করার জন্য কলগুলি নীচের মত দেখাবে:

$ ./waf --run="lena-দ্বৈত-স্ট্রাইপ
--simTime=50 --nBlocks=0 --nMacroEnbSites=7 --nMacroEnbSitesX=2
--epc=1 --useUdp=0 --outdoorUeMinSpeed=16.6667 --outdoorUeMaxSpeed=16.6667
--ns3::LteHelper::HandoverAlgorithm=ns3::NoOpHandoverAlgorithm
--ns3::RadioBearerStatsCalculator::DlRlcOutputFilename=no-op-DlRlcStats.txt
--ns3::RadioBearerStatsCalculator::UlRlcOutputFilename=no-op-UlRlcStats.txt
--ns3::PhyStatsCalculator::DlRsrpSinrFilename=no-op-DlRsrpSinrStats.txt
--ns3::PhyStatsCalculator::UlSinrFilename=no-op-UlSinrStats.txt
--RngRun=1" > no-op.txt

$ ./waf --run="lena-দ্বৈত-স্ট্রাইপ
--simTime=50 --nBlocks=0 --nMacroEnbSites=7 --nMacroEnbSitesX=2
--epc=1 --useUdp=0 --outdoorUeMinSpeed=16.6667 --outdoorUeMaxSpeed=16.6667
--ns3::LteHelper::HandoverAlgorithm=ns3::A3Rsrpহ্যান্ডওভার অ্যালগরিদম
--ns3::RadioBearerStatsCalculator::DlRlcOutputFilename=a3-rsrp-DlRlcStats.txt
--ns3::RadioBearerStatsCalculator::UlRlcOutputFilename=a3-rsrp-UlRlcStats.txt
--ns3::PhyStatsCalculator::DlRsrpSinrFilename=a3-rsrp-DlRsrpSinrStats.txt
--ns3::PhyStatsCalculator::UlSinrFilename=a3-rsrp-UlSinrStats.txt
--RngRun=1" > a3-rsrp.txt

$ ./waf --run="lena-দ্বৈত-স্ট্রাইপ
--simTime=50 --nBlocks=0 --nMacroEnbSites=7 --nMacroEnbSitesX=2
--epc=1 --useUdp=0 --outdoorUeMinSpeed=16.6667 --outdoorUeMaxSpeed=16.6667
--ns3::LteHelper::HandoverAlgorithm=ns3::A2A4RsrqHandoverAlgorithm
--ns3::RadioBearerStatsCalculator::DlRlcOutputFilename=a2-a4-rsrq-DlRlcStats.txt
--ns3::RadioBearerStatsCalculator::UlRlcOutputFilename=a2-a4-rsrq-UlRlcStats.txt
--ns3::PhyStatsCalculator::DlRsrpSinrFilename=a2-a4-rsrq-DlRsrpSinrStats.txt
--ns3::PhyStatsCalculator::UlSinrFilename=a2-a4-rsrq-UlSinrStats.txt
--RngRun=1" > a2-a4-rsrq.txt

মৃত্যুদন্ডের কিছু নোট:

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

· সিমুলেশন আউটপুটের ফাইলের নামগুলি নোট করুন, যেমন RLC ট্রেস এবং PHY ট্রেস, কারণ আমরা
নিশ্চিত করতে হবে যে সেগুলি পরবর্তী সিমুলেশন রান দ্বারা ওভাররাইট করা হয় না। এই
উদাহরণ, আমরা কমান্ড লাইন আর্গুমেন্ট ব্যবহার করে একের পর এক নাম উল্লেখ করি।

· দ্য --RngRun=1 শেষে আর্গুমেন্ট ব্যবহার করা হয় রান নম্বর সেট করার জন্য
সিমুলেশনে ব্যবহৃত র্যান্ডম নম্বর জেনারেটর। আমরা এর সাথে একই সিমুলেশনগুলি পুনরায় চালাই
বিভিন্ন RngRun মান, তাই একইটির বেশ কয়েকটি স্বাধীন প্রতিলিপি তৈরি করে
সিমুলেশন তারপরে আমরা অর্জনের জন্য এই প্রতিলিপিগুলি থেকে প্রাপ্ত ফলাফলগুলি গড় করি
কিছু পরিসংখ্যানগত আস্থা।

· আমরা একটি যোগ করতে পারি -- জেনারেট রেম=1 উত্পন্ন করার জন্য প্রয়োজনীয় ফাইল তৈরি করার যুক্তি
সিমুলেশনের রেডিও এনভায়রনমেন্ট ম্যাপ (REM)। ফলাফল চিত্র REM প্রাপ্ত
থেকে a ব্যাজ in হস্তান্তর প্রচারণা নিচে, যা অনুসরণ করে উত্পাদিত হতে পারে
বিভাগে বর্ণিত পদক্ষেপ রেডিও পরিবেশ মানচিত্র. এই চিত্র এছাড়াও দেখায়
ব্যবহার করে একটি সিমুলেশনের শুরুতে eNodeBs এবং UE-এর অবস্থান RngRun = 1। অন্যান্য
এর মান RngRun বিভিন্ন UE অবস্থান তৈরি করতে পারে।
[ছবি] হ্যান্ডওভার ক্যাম্পেইনের একটি সিমুলেশন থেকে REM প্রাপ্ত। UNINDENT

কয়েক ঘন্টা চলার পরে, সিমুলেশন প্রচারাভিযান শেষ পর্যন্ত শেষ হবে। পরবর্তী আমরা করব
অর্থপূর্ণ প্রাপ্ত করার জন্য উত্পাদিত সিমুলেশন আউটপুটে কিছু পোস্ট-প্রসেসিং সঞ্চালন করুন
এটি থেকে তথ্য।

এই উদাহরণে, আমরা থ্রুপুট এবং SINR ডেটা প্রক্রিয়াকরণে সহায়তা করার জন্য GNU অক্টেভ ব্যবহার করি,
নীচের একটি নমুনা GNU অক্টেভ স্ক্রিপ্টে প্রদর্শিত হয়েছে:

% RxBytes হল ১০ম কলাম
DlRxBytes = লোড ("no-op-DlRlcStats.txt") (:,10);
DlAverageThroughputKbps = যোগফল (DlRxBytes) * 8 / 1000 / 50

% RxBytes হল ১০ম কলাম
UlRxBytes = লোড ("no-op-UlRlcStats.txt") (:,10);
UlAverageThroughputKbps = যোগফল (UlRxBytes) * 8 / 1000 / 50

% Sinr হল ৬ষ্ঠ কলাম
DlSinr = লোড ("no-op-DlRsrpSinrStats.txt") (:,6);
% NaN মান নির্মূল করুন
idx = isnan (DlSinr);
DlSinr (idx) = 0;
DlAverageSinrDb = 10 * log10 (মান (DlSinr)) % dB তে রূপান্তর করুন

% Sinr হল ৬ষ্ঠ কলাম
UlSinr = লোড ("no-op-UlSinrStats.txt") (:,5);
% NaN মান নির্মূল করুন
idx = isnan (UlSinr);
UlSinr (idx) = 0;
UlAverageSinrDb = 10 * log10 (মান (UlSinr)) % dB তে রূপান্তর করুন

হস্তান্তরের সংখ্যা হিসাবে, আমরা সংখ্যা গণনা করার জন্য সাধারণ শেল স্ক্রিপ্টিং ব্যবহার করতে পারি
লগ ফাইলে স্ট্রিং "হ্যান্ডওভার" এর ঘটনাগুলি:

$ grep "হ্যান্ডওভার" no-op.txt | wc -l

টেবিল ফলাফল of হস্তান্তর প্রচারণা আমরা শেষ করার পরে নীচে সম্পূর্ণ পরিসংখ্যান দেখায়
প্রতিটি পৃথক সিমুলেশন রানে পোস্ট-প্রসেসিং সহ। দেখানো মানগুলি গড়
থেকে প্রাপ্ত ফলাফলের RngRun 1, 2, 3, এবং 4 এর মধ্যে।

ফলাফল of হস্তান্তর প্রচারণা
┌───────────────────┬───────────────── ────────┬─ ───────────────┐
│পরিসংখ্যান │ No-op │ A2-A4-RSRQ │ শক্তিশালী সেল │
├───────────────────┼──────────────────── ────────┼─ ───────────────┤
│গড় DL সিস্টেম │ 6 615 kbps │ 20 509 kbps │ 19 709 kbps │
│থ্রুপুট │ │ │ │
├───────────────────┼──────────────────── ────────┼─ ───────────────┤
│গড় UL সিস্টেম │ 4 095 kbps │ 5 705 kbps │ 6 627 kbps │
│থ্রুপুট │ │ │ │
├───────────────────┼──────────────────── ────────┼─ ───────────────┤
│গড় DL SINR │ -0.10 dB │ 5.19 dB │ 5.24 dB │
├───────────────────┼──────────────────── ────────┼─ ───────────────┤
│ গড় UL SINR │ 9.54 dB │ 81.57 dB │ 79.65 dB │
├───────────────────┼──────────────────── ────────┼─ ───────────────┤
│হস্তান্তরের সংখ্যা │ 0 │ 0.05694 │ 0.04771 │
│প্রতি UE প্রতি সেকেন্ডে │ │ │ │
└- ────────┴─ ───────────────┘

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

ফ্রিকোয়েন্সি পুনঃব্যবহার উদাহরণ
ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদমের কার্যকারিতা দেখানোর দুটি উদাহরণ রয়েছে।

lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার ত্রিভুজ বিন্যাসে 3টি eNB সহ সহজ উদাহরণ। 3 টি সেল আছে
প্রান্ত UE, যা এই ত্রিভুজের কেন্দ্রে অবস্থিত এবং 3টি কোষ কেন্দ্র UE (একটি কাছাকাছি
প্রতিটি eNB)। ব্যবহারকারী এলোমেলোভাবে অবস্থিত UE-এর সংখ্যাও নির্দিষ্ট করতে পারেন। এফআর অ্যালগরিদম হল
eNB তে ইনস্টল করা আছে এবং প্রতিটি eNB এর আলাদা FrCellTypeId আছে, যার অর্থ প্রতিটি eNB ব্যবহার করে
বিভিন্ন এফআর কনফিগারেশন। ব্যবহারকারী চালাতে পারেন lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার সঙ্গে 6 ভিন্ন FR
অ্যালগরিদম: NoOp, হার্ড এফআর, স্ট্রিক্ট এফআর, সফট এফআর, সফট এফএফআর এবং বর্ধিত এফএফআর। দৃশ্যকল্প চালানোর জন্য
ডিস্ট্রিবিউটেড এফএফআর অ্যালগরিদম সহ, ব্যবহারকারীর ব্যবহার করা উচিত লেনা-ডিস্ট্রিবিউটেড-এফআর. এই দুটি উদাহরণ
খুব অনুরূপ, কিন্তু এগুলি বিভক্ত করা হয়েছিল কারণ বিতরণ করা FFR-এর জন্য EPC ব্যবহার করা প্রয়োজন,
এবং অন্যান্য অ্যালগোরিহটম করে না।

চালানোর জন্য lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার বিভিন্ন ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম সহ, ব্যবহারকারীর প্রয়োজন
ডিফল্ট অ্যাট্রিবিউট ওভাররাইড করে FR অ্যালগরিদম নির্দিষ্ট করুন ns3::LteHelper::FfrAlgorithm.
চালানোর উদাহরণ কমান্ড lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার সফ্ট এফআর অ্যালগরিদম সহ নীচে উপস্থাপন করা হয়েছে:

$ ./waf --run "lena-frequency-reuse --ns3::LteHelper::FfrAlgorithm=ns3::LteFrSoftAlgorithm"

এই উদাহরণগুলিতে REM এবং স্পেকট্রাম বিশ্লেষক ট্রেস তৈরি করার কার্যকারিতা যুক্ত করা হয়েছিল।
ব্যবহারকারী সেট করে এটি তৈরি করতে সক্ষম করতে পারেন রেম তৈরি করুন এবং স্পেকট্রামট্রেস তৈরি করুন
বৈশিষ্ট্যাবলী।

থেকে ডেটা চ্যানেলে RB 1-এর জন্য REM তৈরি করার কমান্ড lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার সঙ্গে দৃশ্যকল্প
নরম এফআর অ্যালগরিদম নীচে উপস্থাপন করা হয়েছে:

$ ./waf --run "lena-frequency-reuse --ns3::LteHelper::FfrAlgorithm=ns3::LteFrSoftAlgorithm
--generateRem=true --remRbId=1"

সফট FR-এর জন্য রেডিও এনভায়রনমেন্ট ম্যাপ চিত্রে উপস্থাপন করা হয়েছে REM উন্নত RB 1 প্রাপ্ত থেকে
lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার উদাহরণ সঙ্গে কোমল FR অ্যালগরিদম সক্ষম করা.
[image] RB 1 এর জন্য REM থেকে প্রাপ্ত lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার সফট এফআর অ্যালগরিদম সহ উদাহরণ
সক্রিয়।UNINDENT

থেকে স্পেকট্রাম ট্রেস তৈরি করার কমান্ড lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার নরম এফএফআর সহ দৃশ্যকল্প
অ্যালগরিদম নীচে উপস্থাপন করা হয়েছে (স্পেকট্রাম বিশ্লেষক অবস্থান ভিতরে কনফিগার করা প্রয়োজন
লিপি):

$ ./waf --run "lena-frequency-reuse --ns3::LteHelper::FfrAlgorithm=ns3::LteFfrSoftAlgorithm
--generateSpectrumTrace=true"

উদাহরণ বর্ণালী বিশ্লেষক ট্রেস চিত্রে উপস্থাপন করা হয় বর্ণালী বিশ্লেষক চিহ্ন প্রাপ্ত
থেকে lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার উদাহরণ সঙ্গে কোমল FFR অ্যালগরিদম সক্ষম করা হয়েছে। বর্ণালী বিশ্লেষক ছিল
অবস্থিত প্রয়োজন eNB সঙ্গে FrCellTypeId 2.. দেখা যায়, বিভিন্ন ডাটা চ্যানেল সাবব্যান্ড
বিভিন্ন পাওয়ার লেভেলের সাথে পাঠানো হয় (কনফিগারেশন অনুযায়ী), যখন কন্ট্রোল চ্যানেল
সমগ্র সিস্টেম ব্যান্ডউইথ বরাবর অভিন্ন শক্তির সাথে প্রেরণ করা হয়।
[ছবি] স্পেকট্রাম বিশ্লেষক ট্রেস থেকে প্রাপ্ত lena-ফ্রিকোয়েন্সি-পুনঃব্যবহার নরম এফএফআর সহ উদাহরণ
অ্যালগরিদম সক্রিয়। স্পেকট্রাম বিশ্লেষক FrCellTypeId 2..UNINDENT সহ eNB প্রয়োজনে অবস্থিত ছিল

লেনা-দ্বৈত-ডোরা সমস্ত ম্যাক্রোতে ইনস্টল করা ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদমগুলির সাথেও চালানো যেতে পারে
eNB ডিফল্ট অ্যাট্রিবিউট ওভাররাইড করে ব্যবহারকারীকে FR অ্যালগরিদম নির্দিষ্ট করতে হবে
ns3::LteHelper::FfrAlgorithm. চালানোর উদাহরণ কমান্ড লেনা-দ্বৈত-ডোরা হার্ড এফআর সহ
অ্যালগরিদম নীচে উপস্থাপন করা হয়:

$ ./waf --run="lena-দ্বৈত-স্ট্রাইপ
--simTime=50 --nBlocks=0 --nMacroEnbSites=7 --nMacroEnbSitesX=2
--epc=1 --useUdp=0 --outdoorUeMinSpeed=16.6667 --outdoorUeMaxSpeed=16.6667
--ns3::LteHelper::HandoverAlgorithm=ns3::NoOpHandoverAlgorithm
--ns3::LteHelper::FfrAlgorithm=ns3::LteFrHardAlgorithm
--ns3::RadioBearerStatsCalculator::DlRlcOutputFilename=no-op-DlRlcStats.txt
--ns3::RadioBearerStatsCalculator::UlRlcOutputFilename=no-op-UlRlcStats.txt
--ns3::PhyStatsCalculator::DlRsrpSinrFilename=no-op-DlRsrpSinrStats.txt
--ns3::PhyStatsCalculator::UlSinrFilename=no-op-UlSinrStats.txt
--RngRun=1" > no-op.txt

থেকে ডেটা চ্যানেলে RB 1 এর জন্য REM তৈরি করার উদাহরণ কমান্ড লেনা-দ্বৈত-ডোরা দৃশ্যকল্প
হার্ড এফআর অ্যালগরিদম সহ নীচে উপস্থাপন করা হয়েছে:

$ ./waf --run="lena-দ্বৈত-স্ট্রাইপ
--simTime=50 --nBlocks=0 --nMacroEnbSites=7 --nMacroEnbSitesX=2
--epc=0 --useUdp=0 --outdoorUeMinSpeed=16.6667 --outdoorUeMaxSpeed=16.6667
--ns3::LteHelper::HandoverAlgorithm=ns3::NoOpHandoverAlgorithm
--ns3::LteHelper::FfrAlgorithm=ns3::LteFrHardAlgorithm
--ns3::RadioBearerStatsCalculator::DlRlcOutputFilename=no-op-DlRlcStats.txt
--ns3::RadioBearerStatsCalculator::UlRlcOutputFilename=no-op-UlRlcStats.txt
--ns3::PhyStatsCalculator::DlRsrpSinrFilename=no-op-DlRsrpSinrStats.txt
--ns3::PhyStatsCalculator::UlSinrFilename=no-op-UlSinrStats.txt
--RngRun=1 --generateRem=true --remRbId=1" > no-op.txt

RB 1, 10 এবং 20 এর জন্য রেডিও এনভায়রনমেন্ট ম্যাপ তৈরি করা হয়েছে লেনা-দ্বৈত-ডোরা সঙ্গে দৃশ্যকল্প
হার্ড ফ্রিকোয়েন্সি পুনঃব্যবহার অ্যালগরিদম নীচের পরিসংখ্যানে উপস্থাপন করা হয়েছে। এই আরবি নির্বাচন করা হয়
কারণ প্রতিটি আলাদা আলাদা এফআর সেল টাইপ দ্বারা ব্যবহৃত হয়।
[image] RB 1 এর জন্য REM থেকে প্রাপ্ত লেনা-দ্বৈত-ডোরা হার্ড এফআর অ্যালগরিদমের সাথে সিমুলেশন
সক্রিয়।UNINDENT
[image] RB 10 এর জন্য REM থেকে প্রাপ্ত লেনা-দ্বৈত-ডোরা হার্ড এফআর অ্যালগরিদমের সাথে সিমুলেশন
সক্রিয়।UNINDENT
[image] RB 20 এর জন্য REM থেকে প্রাপ্ত লেনা-দ্বৈত-ডোরা হার্ড এফআর অ্যালগরিদমের সাথে সিমুলেশন
সক্রিয়।UNINDENT

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

সাধারণ পদ্ধতি হল প্রাসঙ্গিক লগিংকে বেছে বেছে এবং ক্রমবর্ধমানভাবে সক্ষম করা
এলটিই মডিউল উপাদান, প্রতিটি অ্যাক্টিভেশনের উপর নির্ভর করে যে আউটপুট প্রত্যাশিত। ভিতরে
বিস্তারিত:

· প্রথমে কন্ট্রোল প্লেন চেক করুন, বিশেষ করে আরআরসি সংযোগ স্থাপন
পদ্ধতি, লগ উপাদানগুলি LteUeRrc এবং LteEnbRrc সক্রিয় করে

· তারপর লগ সক্রিয় করে শুরু করে ডেটা প্লেনে প্যাকেট ট্রান্সমিশন চেক করুন
উপাদান LteUeNetDevice এবং EpcSgwPgwApplication, তারপর EpcEnbApplication, তারপর
এলটিই রেডিও স্ট্যাক (PDCP, RLC, MAC, এবং অবশেষে PHY) নীচে সরানো। এই সব আপনি পর্যন্ত
প্যাকেটগুলি প্রক্রিয়া করা/ফরওয়ার্ড করা বন্ধ কোথায় তা সন্ধান করুন।

পরীক্ষামূলক ডকুমেন্টেশন
সংক্ষিপ্ত বিবরণ
ns-3 LTE মডিউল পরীক্ষা এবং যাচাই করার জন্য, বেশ কয়েকটি টেস্ট স্যুট প্রদান করা হয় যা হল
ns-3 পরীক্ষার কাঠামোর সাথে একত্রিত। এগুলি চালানোর জন্য, আপনাকে কনফিগার করতে হবে
এইভাবে সিমুলেটর তৈরি করুন:

$ ./waf কনফিগার --enable-tests --enable-modules=lte --enable-examples
$ ./test.py

উপরোক্তগুলি শুধুমাত্র LTE মডিউলের অন্তর্গত পরীক্ষা স্যুটগুলিই নয়, সেইগুলিও চালাবে৷
অন্যান্য সমস্ত ns-3 মডিউলের অন্তর্গত যার উপর LTE মডিউল নির্ভর করে। ns-3 দেখুন
পরীক্ষার কাঠামোর জেনেরিক তথ্যের জন্য ম্যানুয়াল।

আপনি এইভাবে HTML বিন্যাসে আরও বিস্তারিত প্রতিবেদন পেতে পারেন:

$ ./test.py -w results.html

উপরের কমান্ডটি চালানোর পরে, আপনি খোলার মাধ্যমে প্রতিটি পরীক্ষার জন্য বিস্তারিত ফলাফল দেখতে পারেন
ফাইল ফলাফল.html একটি ওয়েব ব্রাউজার দিয়ে।

আপনি এই কমান্ডটি ব্যবহার করে প্রতিটি পরীক্ষা স্যুট আলাদাভাবে চালাতে পারেন:

$ ./test.py -s test-suite-name

সম্পর্কে আরো বিস্তারিত জানার জন্য test.py এবং ns-3 টেস্টিং ফ্রেমওয়ার্ক, অনুগ্রহ করে ns-3 পড়ুন
ম্যানুয়াল।

বিবরণ of দ্য পরীক্ষা সংকলনের
একক টেস্ট
SINR হিসাব in দ্য ডাউনলিংক
পরীক্ষা স্যুট lte-downlink-sinr ডাউনলিংকে SINR গণনা করা হয়েছে কিনা তা পরীক্ষা করে
সঠিকভাবে ডাউনলিংকের SINR ডেটাতে নির্ধারিত প্রতিটি RB-এর জন্য গণনা করা হয়
দ্বারা বিবেচিত eNB থেকে উদ্দিষ্ট সংকেতের শক্তি ভাগ করে ট্রান্সমিশন
অন্যান্য eNB থেকে আসা একই RB-তে সমস্ত ট্রান্সমিশনের সাথে নয়েজ পাওয়ারের যোগফল
(হস্তক্ষেপ সংকেত):

সাধারণভাবে, বিভিন্ন সময়ের মধ্যে বিভিন্ন সংকেত সক্রিয় হতে পারে। আমরা একটি সংজ্ঞায়িত
খণ্ড টাইপের যেকোন দুটি ইভেন্টের মধ্যে সময়ের ব্যবধান হিসাবে হয় a এর শুরু বা শেষ
তরঙ্গরূপ অন্য কথায়, একটি খণ্ড একটি সময়ের ব্যবধান চিহ্নিত করে যার সেটটি
সক্রিয় তরঙ্গরূপ পরিবর্তন হয় না। আমি জেনেরিক খণ্ড হতে দিন, T_i এর সময়কাল এবং
thrm{SINR_i} এর SINR, উপরের সমীকরণ দিয়ে গণনা করা হয়েছে। গড় হিসাব
SINR rieme
পরীক্ষার স্যুট পরীক্ষা করে যে উপরের গণনাটি সিমুলেটরে সঠিকভাবে সঞ্চালিত হয়েছে।
পরীক্ষার ভেক্টরগুলি একটি অক্টেভ স্ক্রিপ্ট দ্বারা অফলাইনে প্রাপ্ত হয় যা উপরে প্রয়োগ করে
সমীকরণ, এবং এটি অনেকগুলি এলোমেলোভাবে প্রেরিত সংকেত এবং হস্তক্ষেপকে পুনরায় তৈরি করে
সিগন্যাল যা একটি দৃশ্যের অনুকরণ করে যেখানে একটি UE একটি eNB থেকে একটি সংকেত ডিকোড করার চেষ্টা করছে
অন্যান্য eNB-এর হস্তক্ষেপের সম্মুখীন। গণনা করা মান সমান হলে পরীক্ষাটি পাস হয়
10^{-7} সহনশীলতার মধ্যে পরীক্ষা ভেক্টর। সহনশীলতা জন্য অ্যাকাউন্ট বোঝানো হয়
ফ্লোটিং পয়েন্ট পাটিগণিতের সাধারণ আনুমানিক ত্রুটি।

SINR হিসাব in দ্য আপলিংক
পরীক্ষা স্যুট lte-uplink-sinr আপলিঙ্কে SINR গণনা করা হয়েছে কিনা তা পরীক্ষা করে
সঠিকভাবে এই পরীক্ষা স্যুট অনুরূপ lte-downlink-sinr পূর্বে বর্ণিত
বিভাগ, সংকেত এবং হস্তক্ষেপ উভয়ের তুলনায় পার্থক্য সহ এখন উল্লেখ করুন
UEs দ্বারা ট্রান্সমিশন, এবং অভ্যর্থনা eNB দ্বারা সঞ্চালিত হয়। এই পরীক্ষা স্যুট
একটি নকল করার জন্য অনেকগুলি এলোমেলো প্রেরিত সংকেত এবং হস্তক্ষেপ সংকেত পুনরায় তৈরি করে
একটি দৃশ্য যেখানে একটি eNB একই সাথে একাধিক UE থেকে সংকেত ডিকোড করার চেষ্টা করছে (
eNB-এর কক্ষে থাকা) অন্যান্য UE-এর হস্তক্ষেপের সম্মুখীন হওয়ার সময় (যেগুলি অন্তর্গত
অন্যান্য কোষে)।

পরীক্ষার ভেক্টরগুলি একটি ডেডিকেটেড অক্টেভ স্ক্রিপ্ট দ্বারা প্রাপ্ত হয়। পরীক্ষায় উত্তীর্ণ হলে
গণনা করা মানগুলি 10^{-7} এর সহনশীলতার মধ্যে পরীক্ষা ভেক্টরের সমান, যার জন্য
ডাউনলিংক SINR পরীক্ষা, ফ্লোটিং পয়েন্ট গাণিতিক আনুমানিক সমস্যা নিয়ে কাজ করে।

ই-উট্রা পরম রেডিও ফ্রিকোয়েন্সি চ্যানেল সংখ্যা (EARFCN)
পরীক্ষা স্যুট lte-earfcn পরীক্ষা করে যে ক্যারিয়ার ফ্রিকোয়েন্সি দ্বারা ব্যবহৃত হয়
LteSpectrumValueHelper ক্লাস (যা LTE স্পেকট্রাম মডেল প্রয়োগ করে) করা হয়
[TS36101] এর সাথে সম্মতি, যেখানে E-UTRA পরম রেডিও ফ্রিকোয়েন্সি চ্যানেল নম্বর
(EARFCN) সংজ্ঞায়িত করা হয়েছে। এই টেস্ট স্যুটের পরীক্ষা ভেক্টর EARFCN মানগুলির একটি সেট নিয়ে গঠিত
এবং সংশ্লিষ্ট ক্যারিয়ার ফ্রিকোয়েন্সি এর স্পেসিফিকেশন অনুসরণ করে হাতে গণনা করা হয়
[TS36101]। LteSpectrumValueHelper দ্বারা ফেরত দেওয়া ক্যারিয়ার ফ্রিকোয়েন্সি হলে পরীক্ষাটি পাস হয়
পরীক্ষার ভেক্টরের প্রতিটি উপাদানের পরিচিত মানের সমান।

পদ্ধতি টেস্ট
নিবেদিত বাহক নিষ্ক্রিয়করণ টেস্ট
টেস্ট স্যুট 'lte-test-deactivate-bearer' একক EnodeB এবং তিনটি দিয়ে টেস্ট কেস তৈরি করে
UE এর। প্রতিটি UE-এ একটি ডিফল্ট এবং একই বাহক সহ একটি ডেডিকেটেড EPS ধারক থাকে
স্পেসিফিকেশন কিন্তু ভিন্ন ARP সহ। টেস্ট কেস ফ্লো নিম্নরূপ: UE সংযুক্ত করুন -> তৈরি করুন
ডিফল্ট+ডেডিকেটেড বিয়ারার -> ডেডিকেটেড বাহকের একটিকে নিষ্ক্রিয় করুন

টেস্ট কেস ডেডিকেটেড বাহককে নিষ্ক্রিয় করে যার বাহক আইডি 2(LCID=BearerId+2) আছে
প্রথম UE (UE_ID=1) ব্যবহারকারী নির্দিষ্ট সময় বিলম্বের পরে বেয়ারার নিষ্ক্রিয়করণের সময়সূচী করতে পারেন
সিমুলেটর::শিডিউল () পদ্ধতি।

টেস্ট কেস এক্সিকিউশন শেষ হলে এটি DlRlcStats.txt এবং UlRlcStats.txt তৈরি করবে। চাবি
পরিসংখ্যান চেক করা প্রয়োজন যে ক্ষেত্রগুলি হল:

|
শুরু | শেষ | সেল আইডি | IMSI | আরএনটিআই | LCID | TxBytes | RxBytes |

টেস্ট কেস তিনটি যুগে কার্যকর হয়। 1) প্রথম যুগে (0.04s-1.04s) সমস্ত UE এর এবং
সংশ্লিষ্ট ধারক সংযুক্ত করা হয়
এবং প্যাকেট প্রবাহ ডেডিকেটেড বহনকারীদের উপর সক্রিয় করা হয়েছে।

2. দ্বিতীয় যুগে (1.04s-2.04s), বাহক নিষ্ক্রিয়করণ তাৎক্ষণিকভাবে করা হয়, তাই ব্যবহারকারী দেখতে পারেন
অন্যান্য বহনকারীদের তুলনায় UE_ID=1 এবং LCID=4-এ তুলনামূলকভাবে কম TxBytes সংখ্যা।

3. তৃতীয় যুগে (2.04s-3.04s) যেহেতু UE_ID=1 এবং LCID=4 এর বাহক নিষ্ক্রিয় করা হয়েছে
সম্পন্ন হলে, ব্যবহারকারী LCID=4 সম্পর্কিত কোনো লগিং দেখতে পাবে না।

টেস্ট কেস পাস হয় যদি এবং শুধুমাত্র যদি 1) IMSI=1 এবং LCID=4 তৃতীয় যুগে সম্পূর্ণরূপে সরানো হয় 2)
উপরে থাকলে IMSI=1 এবং LCID=4 এর সাথে সম্পর্কিত TxBytes এবং RxBytes-এ কোনো প্যাকেট দেখা যায়নি
মানদণ্ড ব্যর্থ বলে বিবেচিত পরীক্ষার ক্ষেত্রে মেলে না

অভিযোজিত সামঁজস্যবিধান এবং কোডিং টেস্ট
পরীক্ষা স্যুট lte-লিংক-অভিযোজন a এর সাথে একটি দৃশ্যকল্প পুনরায় তৈরি করে সিস্টেম পরীক্ষা প্রদান করে
একক eNB এবং একটি একক UE। বিভিন্ন পরীক্ষার কেস বিভিন্ন অনুরূপ তৈরি করা হয়
UE দ্বারা অনুভূত SNR মান। পরীক্ষার লক্ষ্য হল প্রতিটি পরীক্ষার ক্ষেত্রে পরীক্ষা করা
নির্বাচিত MCS কিছু পরিচিত রেফারেন্স মানের সাথে মিলে যায়। এই রেফারেন্স মান প্রাপ্ত করা হয়
অক্টেভে পুনরায় প্রয়োগ করে (দেখুন src/lte/test/reference/lte_amc.m) বর্ণিত মডেল
বর্ণালী দক্ষতা গণনার জন্য বিভাগ sec-lte-amc, এবং নির্ধারণের জন্য
[R1-081483]-এ ম্যানুয়ালি টেবিলগুলি দেখে সংশ্লিষ্ট MCS সূচক। ফলে
পরীক্ষার ভেক্টর চিত্রে উপস্থাপন করা হয়েছে পরীক্ষা ভেক্টর উন্নত অভিযোজিত সামঁজস্যবিধান এবং কোডিং.

সিমুলেটর দ্বারা ব্যবহৃত MCS ট্রেসিং আউটপুট প্রাপ্তির মাধ্যমে পরিমাপ করা হয়
4ms পরে সময়সূচী দ্বারা উত্পাদিত (এটি প্রাথমিক বিলম্বের জন্য অ্যাকাউন্টে প্রয়োজন
CQI রিপোর্টিং)। সিমুলেটর দ্বারা গণনা করা SINR এছাড়াও ব্যবহার করে প্রাপ্ত করা হয়
LteChunk প্রসেসর ইন্টারফেস. নিম্নলিখিত উভয় শর্ত থাকলে পরীক্ষা পাস
সন্তুষ্ট:

1. সিমুলেটর দ্বারা গণনা করা SINR পরীক্ষার ভেক্টরের SNR-এর সাথে মিলে যায়
10^{-7} এর পরম সহনশীলতা;

2. সিমুলেটর দ্বারা ব্যবহৃত MCS সূচকটি পরীক্ষার একটির সাথে হুবহু মিলে যায়
ভেক্টর
[ছবি] অভিযোজিত মড্যুলেশন এবং কোডিংয়ের জন্য পরীক্ষা ভেক্টর। UNINDENT

আন্তঃকোষ হস্তক্ষেপ টেস্ট
পরীক্ষা স্যুট lte-হস্তক্ষেপ একটি ইন্টার-সেল পুনরায় তৈরি করার জন্য সিস্টেম পরীক্ষা প্রদান করে
দুটি eNB সহ হস্তক্ষেপের দৃশ্য, প্রতিটির সাথে একটি একক UE সংযুক্ত এবং নিয়োগ করা
অ্যাডাপটিভ মডুলেশন এবং কোডিং ডাউনলিংক এবং আপলিংক উভয় ক্ষেত্রেই। এর টপোলজি
দৃশ্যপট চিত্রে চিত্রিত করা হয়েছে টোপোলজি উন্নত দ্য আন্তঃকোষ হস্তক্ষেপ পরীক্ষা. d_1
প্যারামিটার প্রতিটি UE এর সাথে সংযুক্ত eNB এর দূরত্ব উপস্থাপন করে, যেখানে d_2
পরামিতি হস্তক্ষেপকারী দূরত্ব উপস্থাপন করে। আমরা লক্ষ্য করি যে দৃশ্যকল্প টপোলজি এমন
আপলিংক এবং ডাউনলিংকের জন্য হস্তক্ষেপকারী দূরত্ব একই; এখনও, প্রকৃত
অনুভূত হস্তক্ষেপ ক্ষমতা ভিন্ন হবে, কারণ বিভিন্ন প্রচার ক্ষতি
আপলিংক এবং ডাউনলিংক ব্যান্ডে। বিভিন্ন পরীক্ষার ক্ষেত্রে d_1 এবং এর পরিবর্তনের মাধ্যমে পাওয়া যায়
d_2 প্যারামিটার।
[ছবি] আন্তঃকোষ হস্তক্ষেপ পরীক্ষার জন্য টপোলজি। UNINDENT

পরীক্ষার ভেক্টর একটি ডেডিকেটেড অক্টেভ স্ক্রিপ্ট ব্যবহার করে প্রাপ্ত করা হয় (এ উপলব্ধ
src/lte/test/reference/lte_link_budget_interference.m), যা লিঙ্ক বাজেট করে
প্রতিটি পরীক্ষার ক্ষেত্রে টপোলজির সাথে সম্পর্কিত গণনা (হস্তক্ষেপ সহ),
এবং ফলস্বরূপ SINR এবং বর্ণালী দক্ষতা আউটপুট করে। পরেরটি তখন অভ্যস্ত
নির্ধারণ করুন (এর জন্য গৃহীত একই পদ্ধতি ব্যবহার করে অভিযোজিত সামঁজস্যবিধান এবং কোডিং টেস্ট. আমরা
মনে রাখবেন যে পরীক্ষা ভেক্টরে আপলিংক এবং ডাউনলিংকের জন্য পৃথক মান রয়েছে।

UE পরিমাপ টেস্ট
পরীক্ষা স্যুট lte-ue- পরিমাপ একটি ইন্টার-সেল পুনরায় তৈরি করার জন্য সিস্টেম পরীক্ষা প্রদান করে
হস্তক্ষেপ দৃশ্যকল্প জন্য সংজ্ঞায়িত এক অভিন্ন lte-হস্তক্ষেপ পরীক্ষা স্যুট.
যাইহোক, এই পরীক্ষায় যে পরিমাণ পরীক্ষা করা হবে তা RSRP এবং RSRQ দ্বারা উপস্থাপিত হয়
স্ট্যাকের দুটি ভিন্ন পয়েন্টে UE দ্বারা সঞ্চালিত পরিমাপ: উৎস, যা
হল UE PHY স্তর, এবং গন্তব্য, সেটি হল eNB RRC।

পরীক্ষার ভেক্টরগুলি একটি ডেডিকেটেড অক্টেভ স্ক্রিপ্ট ব্যবহার করে প্রাপ্ত হয় (এতে উপলব্ধ
src/lte/test/reference/lte-ue-measurements.m), যা লিঙ্ক বাজেট গণনা করে
(হস্তক্ষেপ সহ) প্রতিটি পরীক্ষার ক্ষেত্রে টপোলজির সাথে সম্পর্কিত, এবং আউটপুট দেয়
ফলে RSRP এবং RSRQ। প্রাপ্ত মান তারপর সঠিকতা পরীক্ষা করার জন্য ব্যবহার করা হয়
PHY স্তরে UE পরিমাপ। এর পরে, তাদের 3GPP অনুযায়ী রূপান্তর করতে হবে
eNB RRC স্তরে তাদের সঠিকতা পরীক্ষা করার উদ্দেশ্যে ফরম্যাটিং।

UE মাপা কনফিগারেশন পরীক্ষা
পূর্বে উল্লিখিত পরীক্ষা স্যুট ছাড়াও, UE পরীক্ষার জন্য আরও 3টি পরীক্ষা স্যুট রয়েছে
পরিমাপ: lte-ue-measurements-piecewise-1, lte-ue-measurements-piecewise-2, এবং
lte-ue-পরিমাপ-হস্তান্তর. এই টেস্ট স্যুটগুলি রিপোর্টিং ট্রিগারের উপর বেশি মনোযোগী
পদ্ধতি, অর্থাৎ ইভেন্ট-ভিত্তিক ট্রিগারিং বাস্তবায়নের সঠিকতা
মানদণ্ড এখানে যাচাই করা হয়.

আরও সুনির্দিষ্টভাবে, পরীক্ষাগুলি যাচাই করে সময়জ্ঞান এবং শীর্ষ XNUMX গ্লোবাল HR এক্সিলেন্স অ্যাওয়ার্ডের বিষয়বস্তু প্রতিটি পরিমাপের রিপোর্ট
eNodeB দ্বারা প্রাপ্ত। প্রতিটি টেস্ট কেস একটি স্বতন্ত্র এলটিই সিমুলেশন এবং টেস্ট কেস হবে
পাস করুন যদি পরিমাপ রিপোর্ট(গুলি) শুধুমাত্র নির্ধারিত সময়ে ঘটে এবং সঠিকটি দেখায়
RSRP এর স্তর (এই মুহূর্তে RSRQ যাচাই করা হয়নি)।

টুকরো টুকরো কনফিগারেশন
পিসওয়াইজ কনফিগারেশনের লক্ষ্য একটি নির্দিষ্ট UE পরিমাপ কনফিগারেশন পরীক্ষা করা। দ্য
সিমুলেশন স্ক্রিপ্ট UE-তে সংশ্লিষ্ট পরিমাপ কনফিগারেশন সেটআপ করবে, যা
সিমুলেশন জুড়ে সক্রিয় থাকবে।

যেহেতু রেফারেন্স মানগুলি হাত দ্বারা পূর্বনির্ধারিত হয়, তাই বেশ কয়েকটি অনুমান করা হয়
সিমুলেশন সরলীকরণ. প্রথমত, চ্যানেল শুধুমাত্র পাথ লস মডেল দ্বারা প্রভাবিত হয় (এতে
ক্ষেত্রে, ফ্রিস মডেল ব্যবহার করা হয়)। দ্বিতীয়ত, আদর্শ RRC প্রোটোকল ব্যবহার করা হয়, এবং স্তর 3
ফিল্টারিং নিষ্ক্রিয়। অবশেষে, UE 4 এর মধ্যে একটি পূর্বনির্ধারিত গতি প্যাটার্নে চলে
স্বতন্ত্র দাগ, যেমন চিত্রে দেখানো হয়েছে UE আন্দোলন চিহ্ন সর্বত্র দ্য ব্যাজ in
টুকরো টুকরো কনফিগারেশন নিচে. তাই মাপা RSRP এর ওঠানামা হতে পারে
আরো সহজে নির্ধারিত।
[ছবি] টুকরো টুকরো কনফিগারেশনে সিমুলেশন জুড়ে UE মুভমেন্ট ট্রেস। UNINDENT

এর পেছনের প্রেরণা "টেলিপোর্ট" পূর্বনির্ধারিত দাগের মধ্যে পরিচয় করিয়ে দিতে হয়
RSRP স্তরের কঠোর পরিবর্তন, যা প্রবেশ বা প্রস্থানের ট্রিগারিং গ্যারান্টি দেবে
পরীক্ষিত ইভেন্টের অবস্থা। কঠোর পরিবর্তন সম্পাদন করে, পরীক্ষা ভিতরে চালানো যেতে পারে
সময় কম পরিমাণ।

ব্যক্তিত্ব মাপা আরএসআরপি চিহ্ন of an উদাহরণ ঘটনা A1 পরীক্ষা কেস in টুকরো টুকরো কনফিগারেশন
নীচে PHY স্তর দ্বারা স্তর 1 ফিল্টার করার পরে পরিমাপ করা RSRP দেখায়
পিসওয়াইজ কনফিগারেশন সহ সিমুলেশন। কারণ লেয়ার 3 ফিল্টারিং নিষ্ক্রিয় করা আছে, এই
রিপোর্টিং ট্রিগার মূল্যায়ন করতে UE RRC উদাহরণ দ্বারা ব্যবহৃত সঠিক মানগুলি
পদ্ধতি লক্ষ্য করুন যে মানগুলি প্রতি 200 ms পরে রিফ্রেশ করা হয়, যা ডিফল্ট
PHY স্তর পরিমাপ প্রতিবেদনের ফিল্টারিং সময়কাল। চিত্রটিও সময় দেখায় যখন
ইভেন্ট A1 এর উদাহরণের শর্তে প্রবেশ করা এবং ছেড়ে যাওয়া (সার্ভিং সেল হয়ে যায়
থ্রেশহোল্ডের চেয়ে ভাল) সিমুলেশনের সময় ঘটে।
[ছবি] টুকরো টুকরো ইভেন্ট A1 পরীক্ষার ক্ষেত্রে একটি উদাহরণের পরিমাপ করা RSRP ট্রেস
configuration.UNINDENT

প্রতিটি রিপোর্টিং মানদণ্ড বিভিন্ন থ্রেশহোল্ড/অফসেট সহ একাধিকবার পরীক্ষা করা হয়
পরামিতি কিছু পরীক্ষার পরিস্থিতি হিস্টেরেসিস এবং সময়-টু-ট্রিগারকেও বিবেচনা করে।
ব্যক্তিত্ব মাপা আরএসআরপি চিহ্ন of an উদাহরণ ঘটনা A1 সঙ্গে হিস্টেরিসিস পরীক্ষা কেস in টুকরো টুকরো
কনফিগারেশন ইভেন্ট A1 পরীক্ষার আরেকটি উদাহরণে হিস্টেরেসিসের প্রভাব চিত্রিত করে।
হিস্টেরেসিস টেস্ট কেস সহ একটি উদাহরণ ইভেন্ট A1 এর পরিমাপ করা RSRP ট্রেস
piecewise configuration.UNINDENT

পিসওয়াইজ কনফিগারেশন UE পরিমাপের দুটি টেস্ট স্যুটে ব্যবহৃত হয়। প্রথম এক
lte-ue-measurements-piecewise-1, এখন থেকে পিসওয়াইজ টেস্ট #1, যা 1 UE এবং অনুকরণ করে
1 eNodeB. অন্য একটি হল lte-ue-measurements-piecewise-2, যার 1 UE এবং 2 eNodeB আছে
সিমুলেশনে

Piecewise পরীক্ষা #1 ইভেন্ট-ভিত্তিক মানদণ্ড পরীক্ষা করার উদ্দেশ্যে যা নির্ভরশীল নয়
একটি প্রতিবেশী কোষের অস্তিত্বের উপর। এই মানদণ্ডের মধ্যে ইভেন্ট A1 এবং A2 অন্তর্ভুক্ত। দ্য
অন্যান্য ইভেন্টগুলি এখনও সঠিকভাবে কাজ করছে কিনা তা যাচাই করার জন্য সংক্ষিপ্তভাবে পরীক্ষা করা হয়
কোন প্রতিবেশী সেলের অনুপস্থিতিতে (কিছুই রিপোর্ট না করা সত্ত্বেও)। টেবিল UE
পরিমাপ পরীক্ষা পরিস্থিতিতে ব্যবহার টুকরো টুকরো কনফিগারেশন #1 নীচে দৃশ্যকল্প তালিকা
টুকরো টুকরো পরীক্ষা # 1 এ পরীক্ষা করা হয়েছে।

UE পরিমাপ পরীক্ষা পরিস্থিতিতে ব্যবহার টুকরো টুকরো কনফিগারেশন #1
┌───────┬──────────┬───────────── ────────── ──┬─────────────────┐
│পরীক্ষা # │ রিপোর্টিং │ থ্রেশহোল্ড/অফসেট │ হিস্টেরেসিস │ সময়-টু-ট্রিগার │
│ │ মানদণ্ড │ │ │ │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│1 │ ইভেন্ট A1 │ কম │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│2 │ ইভেন্ট A1 │ সাধারণ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│3 │ ইভেন্ট A1 │ সাধারণ │ না │ সংক্ষিপ্ত │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│4 │ ইভেন্ট A1 │ সাধারণ │ না │ দীর্ঘ │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│5 │ ইভেন্ট A1 │ সাধারণ │ না │ সুপার │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│6 │ ইভেন্ট A1 │ স্বাভাবিক │ হ্যাঁ │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│7 │ ইভেন্ট A1 │ উচ্চ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│8 │ ইভেন্ট A2 │ কম │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│9 │ ইভেন্ট A2 │ সাধারণ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│10 │ ইভেন্ট A2 │ সাধারণ │ না │ সংক্ষিপ্ত │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│11 │ ইভেন্ট A2 │ সাধারণ │ না │ দীর্ঘ │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│12 │ ইভেন্ট A2 │ সাধারণ │ না │ সুপার │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│13 │ ইভেন্ট A2 │ স্বাভাবিক │ হ্যাঁ │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│14 │ ইভেন্ট A2 │ উচ্চ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│15 │ ইভেন্ট A3 │ শূন্য │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│16 │ ইভেন্ট A4 │ সাধারণ │ না │ না │
└───────┴──────────┴- ────────── ──┴─────────────────┘

│17 │ ইভেন্ট A5 │ সাধারণ-স্বাভাবিক │ না │ না │
└───────┴──────────┴- ────────── ──┴─────────────────┘

অন্যান্য ইভেন্ট যেমন ইভেন্ট A3, A4 এবং A5 প্রতিবেশী কোষের পরিমাপের উপর নির্ভর করে
তারা আরও পুঙ্খানুপুঙ্খভাবে Piecewise পরীক্ষা #2 পরীক্ষা করা হয়. সিমুলেশনটি নোডগুলিকে a এর উপর রাখে
সরলরেখা এবং UE কে নির্দেশ করুন "লাফ" পিসওয়াইজ টেস্ট # 1 এর মতো একইভাবে।
হ্যান্ডওভার সিমুলেশনে অক্ষম, তাই পরিবেশন এবং প্রতিবেশী কোষের ভূমিকা পালন করে
সিমুলেশনের সময় সুইচ করবেন না। টেবিল UE পরিমাপ পরীক্ষা পরিস্থিতিতে ব্যবহার টুকরো টুকরো
কনফিগারেশন #2 নীচে Piecewise পরীক্ষা #2-এ পরীক্ষিত পরিস্থিতিতে তালিকা করা হয়েছে।

UE পরিমাপ পরীক্ষা পরিস্থিতিতে ব্যবহার টুকরো টুকরো কনফিগারেশন #2
┌───────┬──────────┬───────────── ────────── ──┬─────────────────┐
│পরীক্ষা # │ রিপোর্টিং │ থ্রেশহোল্ড/অফসেট │ হিস্টেরেসিস │ সময়-টু-ট্রিগার │
│ │ মানদণ্ড │ │ │ │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│1 │ ইভেন্ট A1 │ কম │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│2 │ ইভেন্ট A1 │ সাধারণ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│3 │ ইভেন্ট A1 │ স্বাভাবিক │ হ্যাঁ │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│4 │ ইভেন্ট A1 │ উচ্চ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│5 │ ইভেন্ট A2 │ কম │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│6 │ ইভেন্ট A2 │ সাধারণ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│7 │ ইভেন্ট A2 │ স্বাভাবিক │ হ্যাঁ │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│8 │ ইভেন্ট A2 │ উচ্চ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│9 │ ইভেন্ট A3 │ ইতিবাচক │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│10 │ ইভেন্ট A3 │ শূন্য │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│11 │ ইভেন্ট A3 │ শূন্য │ না │ সংক্ষিপ্ত │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│12 │ ইভেন্ট A3 │ শূন্য │ না │ সুপার │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│13 │ ইভেন্ট A3 │ শূন্য │ হ্যাঁ │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│14 │ ইভেন্ট A3 │ নেতিবাচক │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│15 │ ইভেন্ট A4 │ কম │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│16 │ ইভেন্ট A4 │ সাধারণ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│17 │ ইভেন্ট A4 │ সাধারণ │ না │ সংক্ষিপ্ত │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│18 │ ইভেন্ট A4 │ সাধারণ │ না │ সুপার │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│19 │ ইভেন্ট A4 │ স্বাভাবিক │ হ্যাঁ │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│20 │ ইভেন্ট A4 │ উচ্চ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│21 │ ইভেন্ট A5 │ নিম্ন-নিম্ন │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│22 │ ইভেন্ট A5 │ কম-স্বাভাবিক │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│23 │ ইভেন্ট A5 │ কম-উচ্চ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│24 │ ইভেন্ট A5 │ সাধারণ-নিম্ন │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│25 │ ইভেন্ট A5 │ সাধারণ-স্বাভাবিক │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│26 │ ইভেন্ট A5 │ সাধারণ-স্বাভাবিক │ না │ সংক্ষিপ্ত │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│27 │ ইভেন্ট A5 │ সাধারণ-স্বাভাবিক │ না │ সুপার │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│28 │ ইভেন্ট A5 │ স্বাভাবিক-সাধারণ │ হ্যাঁ │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│29 │ ইভেন্ট A5 │ সাধারণ-উচ্চ │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│30 │ ইভেন্ট A5 │ উচ্চ-নিম্ন │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│31 │ ইভেন্ট A5 │ উচ্চ-স্বাভাবিক │ না │ না │
├───────┼──────────┼───────────────────── ────────── ──┼─────────────────┤
│32 │ ইভেন্ট A5 │ উচ্চ-উচ্চ │ না │ না │
└───────┴──────────┴- ────────── ──┴─────────────────┘

টাইম-টু-ট্রিগার সহ পরীক্ষা সম্পর্কে একটি নোট, তারা 3টি ভিন্ন মান ব্যবহার করে পরীক্ষা করা হয়
সময়-টু-ট্রিগার: সংক্ষিপ্ত (রিপোর্টের ব্যবধানের চেয়ে কম), দীর্ঘ (ফিল্টারের চেয়ে ছোট
পরিমাপের সময়কাল 200 ms), এবং সুপার (200 ms এর বেশি) প্রথম দুটি নিশ্চিত করে
টাইম-টু-ট্রিগার মূল্যায়ন সর্বদা PHY থেকে প্রাপ্ত সর্বশেষ পরিমাপ রিপোর্ট ব্যবহার করে
স্তর যদিও শেষটি টাইম-টু-ট্রিগার বাতিলকরণ যাচাই করার জন্য দায়ী, এর জন্য
উদাহরণ যখন PHY থেকে একটি পরিমাপ রিপোর্ট দেখায় যে প্রবেশ/ত্যাগের শর্তটি নেই
প্রথম ট্রিগার ফায়ার হওয়ার আগে আরও বেশি সত্য।

হস্তান্তর কনফিগারেশন
হ্যান্ডওভার কনফিগারেশনের উদ্দেশ্য UE পরিমাপ কিনা তা যাচাই করা
একটি সফল হস্তান্তর সঞ্চালিত হওয়ার পরে কনফিগারেশন সঠিকভাবে আপডেট করা হয়। এই জন্য
উদ্দেশ্য, সিমুলেশনটি ভিন্ন UE পরিমাপের সাথে 2টি eNodeB তৈরি করবে
কনফিগারেশন, এবং UE এক কক্ষ থেকে অন্য কোষে হস্তান্তর করবে। UE হবে
2 eNodeB-এর মধ্যে একটি সরল রেখায় অবস্থিত, এবং হস্তান্তর আহ্বান করা হবে
ম্যানুয়ালি প্রতিটি সিমুলেশনের সময়কাল 2 সেকেন্ড (শেষ টেস্ট কেস বাদে) এবং
হ্যান্ডওভার ঠিক সিমুলেশনের অর্ধেক সময়ে ট্রিগার হয়।

সার্জারির lte-ue-পরিমাপ-হস্তান্তর টেস্ট স্যুট বিভিন্ন ধরনের কনফিগারেশন কভার করে
পার্থক্য প্রথমটি হল রিপোর্টের ব্যবধানের পার্থক্য, যেমন প্রথম eNodeB হল৷
480 ms রিপোর্ট ব্যবধানের সাথে কনফিগার করা হয়েছে, যখন দ্বিতীয় eNodeB 240 ms দিয়ে কনফিগার করা হয়েছে
রিপোর্টের ব্যবধান। অতএব, যখন UE দ্বিতীয় কক্ষে হস্তান্তর সঞ্চালিত, নতুন
রিপোর্ট ব্যবধান কার্যকর হতে হবে। টুকরো টুকরো কনফিগারেশন হিসাবে, সময় এবং
eNodeB দ্বারা প্রাপ্ত প্রতিটি পরিমাপ প্রতিবেদনের বিষয়বস্তু যাচাই করা হবে।

পরীক্ষা স্যুট দ্বারা আচ্ছাদিত অন্যান্য ধরনের পার্থক্য ঘটনা এবং পার্থক্য
থ্রেশহোল্ড/অফসেটের পার্থক্য। টেবিল UE পরিমাপ পরীক্ষা পরিস্থিতিতে ব্যবহার হস্তান্তর
কনফিগারেশন নীচে পরীক্ষিত পরিস্থিতিতে তালিকা.

UE পরিমাপ পরীক্ষা পরিস্থিতিতে ব্যবহার হস্তান্তর কনফিগারেশন
────────────────────────────────────────────────── ──────────────────────
পরীক্ষা # পরীক্ষার বিষয় প্রাথমিক পোস্ট-হ্যান্ডওভার
কনফিগারেশন কনফিগারেশন
────────────────────────────────────────────────── ──────────────────────
1 রিপোর্টের ব্যবধান 480 ms 240 ms
────────────────────────────────────────────────── ──────────────────────
2 রিপোর্টের ব্যবধান 120 ms 640 ms
────────────────────────────────────────────────── ──────────────────────
3 ইভেন্ট ইভেন্ট A1 ইভেন্ট A2
────────────────────────────────────────────────── ──────────────────────
4 ইভেন্ট ইভেন্ট A2 ইভেন্ট A1
────────────────────────────────────────────────── ──────────────────────
5 ইভেন্ট ইভেন্ট A3 ইভেন্ট A4
────────────────────────────────────────────────── ──────────────────────
6 ইভেন্ট ইভেন্ট A4 ইভেন্ট A3
────────────────────────────────────────────────── ──────────────────────
7 ইভেন্ট ইভেন্ট A2 ইভেন্ট A3
────────────────────────────────────────────────── ──────────────────────
8 ইভেন্ট ইভেন্ট A3 ইভেন্ট A2
────────────────────────────────────────────────── ──────────────────────
9 ইভেন্ট ইভেন্ট A4 ইভেন্ট A5
────────────────────────────────────────────────── ──────────────────────
10 ইভেন্ট ইভেন্ট A5 ইভেন্ট A4
────────────────────────────────────────────────── ──────────────────────
11 থ্রেশহোল্ড/অফসেট RSRP পরিসর 52 RSRP পরিসীমা 56
(ইভেন্ট A1) (ইভেন্ট A1)
────────────────────────────────────────────────── ──────────────────────
12 থ্রেশহোল্ড/অফসেট RSRP পরিসর 52 RSRP পরিসীমা 56
(ইভেন্ট A2) (ইভেন্ট A2)
────────────────────────────────────────────────── ──────────────────────
13 থ্রেশহোল্ড/অফসেট A3 অফসেট -30 A3 অফসেট +30
(ইভেন্ট A3) (ইভেন্ট A3)
────────────────────────────────────────────────── ──────────────────────
14 থ্রেশহোল্ড/অফসেট RSRP পরিসর 52 RSRP পরিসীমা 56
(ইভেন্ট A4) (ইভেন্ট A4)
────────────────────────────────────────────────── ──────────────────────
15 থ্রেশহোল্ড/অফসেট RSRP রেঞ্জ 52-52 RSRP রেঞ্জ 56-56
(ইভেন্ট A5) (ইভেন্ট A5)
────────────────────────────────────────────────── ──────────────────────
16 সময়-টু-ট্রিগার 1024 ms 100 ms
────────────────────────────────────────────────── ──────────────────────
17 সময়-টু-ট্রিগার 1024 ms 640 ms
┌───────┬──────────────────────────────── ─────────┬ ─────────────────────┐
│ │ │ │ │
বাইনারি ফাইল (স্ট্যান্ডার্ড ইনপুট) মেলে

onworks.net পরিষেবা ব্যবহার করে অনলাইনে ns-3-model-library ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad




×
ভি .আই. পি  বিজ্ঞাপন
❤️এখানে কেনাকাটা করুন, বুক করুন, অথবা কিনুন — বিনামূল্যে, পরিষেবাগুলি বিনামূল্যে রাখতে সাহায্য করে।