Tag Archives: Error

ডেটা কমিউনিকেশন ও কম্পিউটার নেটওয়ার্ক : ক্রুটি নির্ণয় ও সংশোধন (DCN – Error Detection & Correction)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

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

 

ডাটা লিঙ্ক লেয়ার ক্রুটি নিয়ন্ত্রণের জন্য কিছু কৌশল ব্যবহার করে,যাতে করে ফ্রেম(ডাটা বিট স্ট্রিম) নির্ভুলতার একটি নির্দিষ্ট মান বজায় রাখতে পারে।

 

ক্রুটির প্রকরণগুলো হল

তিন ধরণের ক্রুটি দেখা যায়,

  • সিঙ্গেল বিট এররঃ

সিঙ্গেল বিট এরর

একটি ফ্রেমে কেবল একটি বিটে ক্রুটি,

  • মাল্টিপল বিট এররঃ

মাল্টিপল বিট এরর

ফ্রেম একের বেশি এমন বিট গ্রহণ করে যা ক্রুটিপূর্ণ,

  • বড় ক্রুটিঃ

বড় ক্রুটি

একের বেশি ক্রমিক বিট ক্রুটিপূর্ণ

 

এরর কন্ট্রোল ম্যানেজমেন্ট দুটি পদ্ধতিতে কাজ করে, ক্রুটি নির্ণয় ও ক্রুটি সংশোধন ।

 

ক্রুটি নির্ণয়

রিসিভড ফ্রেমের ক্রুটি নির্ণয় প্যারীটি চেক ও সাইক্লিক রেডানড্যান্সি চেক বা সিআরসি দ্বারা করা হয়। উভয় ক্ষেত্রেই মূল ডাটার সাথে কিছু অতিরিক্ত ডাটা প্রেরণ করা হয়। গ্রহীতা যন্ত্র সেই ডাটা সঠিকভাবে গ্রহণ না করলে বোঝা যায় সিস্টেম ক্রুটিমুক্ত নয়।

 

প্যারীটি চেক

মূল ডাটার সাথে এক বিট অতিরিক্ত ডাটা প্রেরণ করা হয়।তার থেকে অড প্যারীটি বা ইভেন হলে ইভেন প্যারীটি নির্ণয় করে প্রক্রিয়ার মাধ্যমে ক্রুটি নির্ণয় করা হয়।

প্যারীটি চেক

 

সাইক্লিক রেডানড্যান্সি চেক বা সিআরসি

এ প্রক্রিয়ায় ভিন্নভাবে ক্রুটি নির্ণয় করা হয়।প্রেরণকৃত ডাটার বাইনারি ডিভিশনের মাধ্যমে এটি করা হয়।

সাইক্লিক রেডানড্যান্সি চেক বা সিআরসি

 

ক্রুটি সংশোধন

ডিজিটাল জগতে দুইভাবে ক্রুটি সংশোধন করা হয়,

  • ব্যাকওয়ার্ড এরর কারেকশনঃ রিসিভার গৃহীত ডাটায় ক্রুটি পেলে প্রেরককে পুনরায় ডাটা ট্রান্সমিশনের অনুরোধ জানায়,
  • ফরোয়ার্ড এরর কারেকশনঃ রিসিভার গৃহীত ডাটায় ক্রুটি পেলে ভুল সংশোধন কোড ব্যবহার করে ক্রুটি সারায়।

 

প্রথমটি অপেক্ষাকৃত সহজ, যদি পুনরায় ডাটা ট্রান্সমিশনের খরচ কম হয়। ডাটা ফ্রেমে সংশোধনের ক্ষেত্রে রিসিভারকে জানতে হবে ফ্রেমের কোন বিট ক্রুটিপূর্ণ।

 

পিএইচপি ত্রুটি পরিচালনার ব্যবস্থা (PHP Error Handling)

Huge Sell on Popular Electronics

পিএইচপি প্রোগ্রামিং এ একটি Default Error Handling built-in থাকে যা স্বয়ংক্রিয় ভাবে যে ফাইলে ভুল রয়েছে সেই ফাইলের নাম, যে লাইন এ ভুল হয়েছে তার নম্বর এবং কি ধরনের ভুল হয়েছে তা প্রদর্শন করে থাকে এবং ব্রাউসারে একটি error message প্রেরন করে। আমরা উক্ত error message দেখে খুব সহজে আমাদের করনিও নিরধারন করতে পারি।

পিএইচপি স্ক্রিপ্ট এবং ওয়েব অ্যাপ্লিকেশন তৈরি করার সময় যদি আমরা ত্রুটিপূর্ণ ফাইল পরিচালনা করি তাহলে আপনার প্রোগ্রাম খুব অপেশাদারী হতে পারে এবং এই অ্যাপ্লিকেশন এ নিরাপত্তা ঝুঁকি থেকে যাবে যা আমাদের মটেই কাম্য নয়।
সুতরাং পিএইচপি স্ক্রিপ্ট এ কোন প্রকার ত্রুটি রয়েছে কিনা তা নির্ধারণ করা একটি গুরুত্বপূর্ণ অংশ।

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

"die()” statements এর সাহায্যে কিভাবে error handling করা যায় তা আলোচনা করব।


<?php
 $file=fopen("welcome.txt","r");
 ?>

 

প্রথমে আমরা একটি স্ক্রিপ্ট লিখব যা একটি .txt ফাইল খুলার নির্দেশ বহন করছে।


<?php
$file=fopen("welcome.txt","r");
?>

 

এখন যদি মূল পিএইচপি এর জন্য বরাদ্দকৃত ফোল্ডার এ এই welcome.txt ফাইলটির কোন অস্তিত্ব না থাকে তাহলে আমরা নিম্নক্ত error message পাব।


Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:
No such file or directory in C:\webfolder\test.php on line 2


 

উপরোক্ত error messege দেখে খুব সহজেই বোঝা জাচ্ছে যে আমাদের webfolder এ welcome.txt নামের কোন ফাইল compiler খুজে পায় নি।

এখন আমরা "die()” statements এর সাহায্যে welcome.txt ফাইলটি আমাদের মূল webfolder এ আছে কিনা তা চেক করে দেখবো।


<?php
 if(!file_exists("welcome.txt")) {
   die("File not found");
 } else {
   $file=fopen("welcome.txt","r");
 }
 ?>

 

এই script পরিচালনা করার পর যদি ফাইলটি webfolder এ না থাকে তাহলে নিচের message টি পাবো এবং script পরিচালনা সয়ংক্রিওভাবে বন্ধ হয়ে যাবে।


“File not found”


 

এখন আমরা Custom Creator Handler এর সাহায্যে কিভাবে error handling করা যায় তা দেখবো। Custom Creator Handler এমন একটি ফাংসন যা script এ কোন error থাকলে এর সাহায্য নেয়া যাবে। এই ফাংসন এর সাহায্যে সর্বনিম্ন দুটি (error level এবং error message) থেকে পাঁচটি (file, line-number, এবং the error context) পর্যন্ত parameters ব্যবহার করা যাই।

Syntax গুলো নিম্নের নিয়মে লেখা যায়।


error_function(error_level,error_message,
error_file,error_line,error_context)

 

Parameter বর্ণনা

error_level অবশ্য প্রয়োজনীয়। এটি error report level প্রদর্শন করে থাকে এবং এর ফলাফল একটি value number হতে হবে।
error_message অবশ্য প্রয়োজনীয়। এটি error message প্রদর্শন করে থাকে।
error_file ঐচ্ছিক। এটি filename প্রদর্শন করে যেখানে error টি নম্পাদন হয়েছে।
error_line ঐচ্ছিক। এটি line number প্রদর্শন করে যেখানে error টি রয়েছে।
error_context ঐচ্ছিক। এটি একটি array নির্দিষ্ট করে, এবং script এ অন্তরভুক্ত প্রত্যেকটি variable এবং তাদের value প্রদর্শন করে থাকে।

Set Error Handler

আমরা আগেই জেনেছি যে, পিএইচপি তে Error Handler built-in থাকে। আমরা একটি function তৈরি করবো যা default error handler টিকে script পরিচালন এর সময় ব্যবহার করবো। তবে জরুরি কোন প্রয়জনে কিছু কিছু error এর জন্য default error handler টি পরিবর্তন করা যায়। নিম্নে একটি উধাহরন দেখান হল।


set_error_handler("customError");


 

যদি আমরা আমাদের নিজস্ব ফাংশন দিয়ে সব ত্রুটি হ্যান্ডেল করতে চাই তাহলে set_error_handler () একটি মাত্র parameter ব্যবহার করবো এবং দ্বিতীয় parameter টি error level এর জন্য ব্যাবহার করতে পারব। নিম্নে একটি উধাহরন দেখানো হল।


<?php
 //error handler function
 function customError($errno, $errstr) {
   echo "<b>Error:</b> [$errno] $errstr";
 }
 
 //set error handler
 set_error_handler("customError");
 
 //trigger error
 echo($test);
 ?>