ডেটা লিঙ্ক কন্ট্রোলস (Data Link Controls)

ডেটা লিঙ্ক কন্ট্রোল (Data Link Controls) হল ডেটা লিঙ্ক লেয়ার দ্বারা প্রদত্ত পরিষেবা যা ফিজিক্যাল মাধ্যমে নির্ভরযোগ্য ডেটা ট্রান্সমিট প্রদান করে। উদাহরণস্বরূপ, হাফ-ডুপ্লেক্স ট্রান্সমিশন মোডে, একটি ডিভাইস শুধুমাত্র একবারে ডেটা ট্রান্সমিট করতে পারে। যদি লিঙ্কের শেষে উভয় ডিভাইস একযোগে ডেটা ট্রান্সমিট করে, তবে তাদের সংঘর্ষ হবে যা তথ্যের ক্ষতির দিকে পরিচালিত করে। ডেটা লিঙ্ক লেয়ারটি ডিভাইসগুলির মধ্যে সমন্বয় প্রদান করে যাতে কোনও সংঘর্ষ না ঘটে।

ডেটা লিঙ্ক লেয়ারটি সাধারণত তিনটি ফাংশন প্রদান করে:

  • লাইন ডিসিপ্লিন
  • ফ্লো কন্ট্রোল
  • এরর কন্ট্রোল

লাইন ডিসিপ্লিন

লাইন ডিসিপ্লিন হল ডেটা লিঙ্ক স্তরের একটি কার্যকারিতা যা লিঙ্ক সিস্টেমগুলির মধ্যে সমন্বয় প্রদান করে। এটি নির্ধারণ করে কোন ডিভাইসটি পাঠাতে পারে এবং কখন এটি ডেটা পাঠাতে পারে।

লাইন ডিসিপ্লিন দুটি উপায়ে অর্জন করা যেতে পারে:

  • ENQ/ACK
  • Poll/select

END/ACK

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

END/ACK সমন্বয় করে কোন ডিভাইসটি ট্রান্সমিশন শুরু করবে এবং প্রাপক প্রস্তুত কিনা।

END/ACK এর কাজ

ট্রান্সমিটারটি একটি ইনকোয়ারি (ENQ) নামক ফ্রেমটি প্রেরণ করে যা জিজ্ঞাসা করে যে প্রাপক ডেটা গ্রহণের জন্য উপলব্ধ কিনা।

রিসিভার হয় একটি নেগেটিভ acknowledgement (ACK) অথবা একটি পসিটিভ acknowledgement (NACK) দিয়ে প্রতিক্রিয়া জানায় যেখানে নেগেটিভ acknowledgement মানে হল যে রিসিভার ট্রান্সমিশন গ্রহণ করতে প্রস্তুত এবং পসিটিভ acknowledgement মানে হল যে গ্রহণকারী ট্রান্সমিশন গ্রহণ করতে অক্ষম।

Poll/Select

লাইন ডিসিপ্লিনের Poll/Select পদ্ধতি সেই টপোলজিগুলির সাথে কাজ করে যেখানে একটি ডিভাইস প্রাথমিক স্টেশন হিসাবে মনোনীত হয় এবং অন্যান্য ডিভাইসগুলি সেকেন্ডারি স্টেশন।

Poll/Select কাজ

এতে, প্রাথমিক ডিভাইস এবং একাধিক সেকেন্ডারি ডিভাইসে একটি একক ট্রান্সমিশন লাইন থাকে এবং গন্তব্যটি একটি সেকেন্ডারি ডিভাইস হলেও প্রাথমিক ডিভাইসের মাধ্যমে সমস্ত আদান-প্রদান করা হয়।

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

যদি প্রাথমিক ডিভাইসটি সেকেন্ডারি ডিভাইস থেকে ডেটা গ্রহণ করতে চায়, তবে এটি সেকেন্ডারি ডিভাইসটিকে কিছু পাঠাতে বলে, এই প্রক্রিয়াটি পোলিং নামে পরিচিত।

যদি প্রাথমিক ডিভাইসটি সেকেন্ডারি ডিভাইসে কিছু ডেটা পাঠাতে চায়, তাহলে এটি টার্গেট সেকেন্ডারিকে ডেটা গ্রহণের জন্য প্রস্তুত হতে বলে, এই প্রক্রিয়াটি সিলেকটিং হিসাবে পরিচিত।

Select

প্রাথমিক ডিভাইসে পাঠানোর মতো কিছু থাকলে সিলেক্ট মোড ব্যবহার করা হয়।

যখন প্রাথমিক ডিভাইসটি কিছু ডেটা পাঠাতে চায়, তখন এটি একটি সিলেক্ট (SEL) ফ্রেম প্রেরণের মাধ্যমে আসন্ন ট্রান্সমিশনের জন্য সেকেন্ডারি ডিভাইসকে সতর্ক করে, ফ্রেমের একটি ফিল্ডে সেকেন্ডারি ডিভাইসের ঠিকানা অন্তর্ভুক্ত থাকে।

যখন সেকেন্ডারি ডিভাইসটি SEL ফ্রেম পায়, তখন এটি একটি অকনোলিজমেন্ট পাঠায় যা সেকেন্ডারি প্রস্তুত অবস্থা নির্দেশ করে।

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

Poll

যখন প্রাথমিক ডিভাইসটি সেকেন্ডারি ডিভাইস থেকে কিছু ডেটা গ্রহণ করতে চায় তখন পোল মোড ব্যবহার করা হয়।

যখন একটি প্রাথমিক ডিভাইস ডেটা গ্রহণ করতে চায়, তখন এটি প্রতিটি ডিভাইসকে জিজ্ঞাসা করে যে এটি পাঠানোর কিছু আছে কিনা।

প্রথমত, প্রাথমিক জিজ্ঞাসা (পোল) প্রথম সেকেন্ডারি ডিভাইস, যদি এটি NACK (নেগেটিভ অকনোলিজমেন্ট) এর সাথে সাড়া দেয় তার মানে এটি পাঠানোর কিছু নেই। এখন, এটি দ্বিতীয় সেকেন্ডারি ডিভাইসের কাছে পৌঁছেছে, এটি ACK এর সাথে সাড়া দেয় মানে এটি পাঠানোর জন্য ডেটা রয়েছে। সেকেন্ডারি ডিভাইস একের পর এক একাধিক ফ্রেম পাঠাতে পারে বা কখনও কখনও প্রতিটি পাঠানোর আগে ACK পাঠাতে হতে পারে, যে ধরনের প্রোটোকল ব্যবহার করা হচ্ছে তার উপর নির্ভর করে।

ফ্লো কন্ট্রোল

এটি পদ্ধতির একটি সেট যা ট্রান্সমিট বলে যে ডেটা প্রাপককে অভিভূত করার আগে এটি কতটা ডেটা প্রেরণ করতে পারে।

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

এটি প্রক্রিয়া না হওয়া পর্যন্ত তথ্য সংরক্ষণের জন্য একটি বাফার, মেমরির একটি ব্লক প্রয়োজন।

ডেটা প্রবাহ নিয়ন্ত্রণ করার জন্য দুটি পদ্ধতি তৈরি করা হয়েছে:

  • স্টপ-এন্ড-বাইট
  • স্লাইডিং উইন্ডো

স্টপ-এন্ড-বাইট

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

স্লাইডিং উইন্ডো

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

স্লাইডিং উইন্ডো কন্ট্রোলে, একাধিক ফ্রেম একের পর এক পাঠানো যেতে পারে যার কারণে যোগাযোগ চ্যানেলের ক্ষমতা দক্ষতার সাথে ব্যবহার করা যেতে পারে।

একটি একক ACK একাধিক ফ্রেম স্বীকার করে।

স্লাইডিং উইন্ডো বলতে সেন্ডের এবং রিসীভর উভয় প্রান্তে কাল্পনিক বাক্স বোঝায়।

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

উইন্ডো সম্পূর্ণরূপে পূর্ণ না হলেও ফ্রেমগুলি স্বীকার করা যেতে পারে।

উইন্ডোটির একটি নির্দিষ্ট মাপ রয়েছে যেখানে সেগুলিকে মডুলো-এন হিসাবে সংখ্যা করা হয়েছে মানে তারা 0 থেকে n-1 পর্যন্ত সংখ্যাযুক্ত। উদাহরণস্বরূপ, যদি n = 8 হয়, ফ্রেমগুলি 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1. ……

উইন্ডোর আকার n-1 হিসাবে উপস্থাপিত হয়। অতএব, অকনোলিজমেন্ট আগে সর্বাধিক n-1 ফ্রেম পাঠানো যেতে পারে।

যখন রিসিভার ACK পাঠায়, এতে পরবর্তী ফ্রেমের সংখ্যা অন্তর্ভুক্ত থাকে যেটি সে গ্রহণ করতে চায়। উদাহরণস্বরূপ, ফ্রেম নম্বর 4 দিয়ে শেষ হওয়া ফ্রেমের স্ট্রিংটি স্বীকার করতে, গ্রহণকারী 5 নম্বর সহ ACK পাঠাবে। সেন্ডের যখন 5 নম্বর সহ ACK দেখেন, তখন তিনি জানতে পারেন যে 0 থেকে 4 পর্যন্ত ফ্রেমগুলি প্রাপ্ত হয়েছে।

সেন্ডার উইন্ডো

একটি ট্রান্সমিশনের শুরুতে, সেন্ডের উইন্ডোতে n-1 ফ্রেম থাকে, এবং যখন সেগুলি পাঠানো হয়, বাম সীমানা উইন্ডোটির আকারকে সঙ্কুচিত করে ভিতরের দিকে চলে যায়। উদাহরণস্বরূপ, যদি উইন্ডোটির আকার w হয় যদি তিনটি ফ্রেম পাঠানো হয়, তাহলে সেন্ডের উইন্ডোতে বাকি ফ্রেমের সংখ্যা w-3 হবে।

একবার ACK এসে গেলে, সেন্ডের উইন্ডোটি সংখ্যায় প্রসারিত হয় যা ACK দ্বারা স্বীকৃত ফ্রেমের সংখ্যার সমান হবে।

উদাহরণস্বরূপ, উইন্ডোটির আকার 7, এবং যদি 0 থেকে 4 ফ্রেম পাঠানো হয় এবং কোনো অকনোলিজমেন্ট না আসে, তাহলে সেন্ডের উইন্ডোতে শুধুমাত্র দুটি ফ্রেম থাকে, অর্থাৎ 5 এবং 6। এখন, যদি ACK একটি সঙ্গে এসেছে সংখ্যা 4 এর মানে হল যে 0 থেকে 3 ফ্রেমগুলি ক্ষতিগ্রস্ত হয়নি এবং সেন্ডের উইন্ডোটি পরবর্তী চারটি ফ্রেম অন্তর্ভুক্ত করার জন্য প্রসারিত করা হয়েছে। অতএব, সেন্ডের উইন্ডোতে ছয়টি ফ্রেম রয়েছে (5,6,7,0,1,2)।

রিসিভার উইন্ডো

ট্রান্সমিশনের শুরুতে, রিসিভার উইন্ডোতে n ফ্রেম থাকে না, তবে এতে ফ্রেমের জন্য n-1 স্পেস থাকে।

যখন নতুন ফ্রেম আসে, উইন্ডো আকার সঙ্কুচিত হয়।

রিসিভার উইন্ডোটি প্রাপ্ত ফ্রেমের সংখ্যা উপস্থাপন করে না, তবে এটি একটি ACK পাঠানোর আগে প্রাপ্ত ফ্রেমের সংখ্যা উপস্থাপন করে। উদাহরণস্বরূপ, উইন্ডোটির আকার w, যদি তিনটি ফ্রেম পাওয়া যায় তবে উইন্ডোতে উপলব্ধ স্থানের সংখ্যা (w-3)।

একবার অকনোলিজমেন্ট পাঠানো হলে, রিসিভার উইন্ডোটি অকনোলিজমেন্ট ফ্রেমের সংখ্যার সমান সংখ্যা দ্বারা প্রসারিত হয়।

ধরুন উইন্ডোটির আকার 7 মানে রিসিভার উইন্ডোতে সাতটি ফ্রেমের জন্য সাতটি স্পেস রয়েছে। যদি একটি ফ্রেম পাওয়া যায়, তাহলে রিসিভার উইন্ডোটি সঙ্কুচিত হয় এবং সীমানা 0 থেকে 1 পর্যন্ত সরে যায়। এভাবে, উইন্ডোটি একে একে সঙ্কুচিত হয়, তাই উইন্ডোটিতে এখন ছয়টি স্পেস রয়েছে। যদি 0 থেকে 4 পর্যন্ত ফ্রেম পাঠানো হয়, তাহলে একটি অকনোলিজমেন্ট পাঠানোর আগে উইন্ডোতে দুটি স্পেস থাকে।

এরর কন্ট্রোল

এরর কন্ট্রোল এরর ডিটেকশন এবং রিট্রান্সমিশনের একটি কৌশল। এরর কন্ট্রোলকে সাধারণত দুটি ভাগে ভাগ করা য়ায়:

  • স্টপ-এন্ড-ওয়েট ARQ
  • স্লাইডিং উইন্ডো ARQ

স্টপ-এন্ড-ওয়েট ARQ

স্টপ-এন্ড-ওয়েট ARQ হল একটি কৌশল যা ক্ষতিগ্রস্ত বা হারিয়ে যাওয়া ফ্রেমের ক্ষেত্রে ডেটা পুনরায় ট্রান্সমিট করতে ব্যবহৃত হয়।

এই কৌশলটি এই নীতিতে কাজ করে যে সেন্ডের শেষ ট্রান্সমিট ফ্রেমের স্বীকৃতি না পাওয়া পর্যন্ত পরবর্তী ফ্রেমটি ট্রান্সমিট করবে না।

রিট্রান্সমিশন জন্য চারটি বৈশিষ্ট্য প্রয়োজন:

প্রাপ্তি অকনোলিজমেন্ট না হওয়া পর্যন্ত ট্রান্সমিটকারী ডিভাইসটি সর্বশেষ ট্রান্সমিট করা ফ্রেমের একটি কপি রাখে। কপি রাখা প্রেরককে তথ্য পুনরায় ট্রান্সমিট করার অনুমতি দেয় যদি ফ্রেমটি সঠিকভাবে না পাওয়া যায়।

উভয় ডেটা ফ্রেম এবং ACK ফ্রেমগুলিকে পর্যায়ক্রমে 0 এবং 1 নম্বর দেওয়া হয় যাতে সেগুলি পৃথকভাবে সনাক্ত করা যায়। ধরুন ডেটা 1 ফ্রেমটি ডেটা 0 ফ্রেমকে স্বীকার করে তার মানে হল যে ডেটা 0 ফ্রেম সঠিকভাবে এসেছে এবং ডেটা 1 ফ্রেম পাওয়ার আশা করছে।

যদি শেষ ট্রান্সমিট ফ্রেমে একটি ত্রুটি ঘটে, তাহলে রিসিভার NAK ফ্রেমটি পাঠায় যা সংখ্যাযুক্ত নয়। NAK ফ্রেম প্রাপ্তির পরে, সেন্ডের ডেটা পুনরায় ট্রান্সমিট করে।

স্লাইডিং উইন্ডো ARQ

স্লাইডিং উইন্ডো এআরকিউ একটি কৌশল যা ক্রমাগত সংক্রমণ ত্রুটি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।

রিট্রান্সমিশন জন্য ব্যবহৃত তিনটি বৈশিষ্ট্য:

এই ক্ষেত্রে, সেন্ডের সমস্ত ট্রান্সমিট ফ্রেমের কপিগুলিকে অকনোলিজমেন্ট না হওয়া পর্যন্ত রাখে৷ ধরুন 0 থেকে 4 পর্যন্ত ফ্রেমগুলি ট্রান্সমিট করা হয়েছে, এবং শেষ অকনোলিজমেন্টিটি ফ্রেম 2 এর জন্য ছিল, সেন্ডেরকে ফ্রেম 3 এবং 4 এর কপি রাখতে হবে যতক্ষণ না তারা সঠিকভাবে গ্রহণ করে।

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

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