IP Header Deep Drive

IP Header Deep Drive

আজকে আপনাদের সাথে আড্ডা দিব Ip Man না না Ip Man 🎭সিনেমা নিয়ে নয়। এতটা কংফু ফাইটিং দরকার নেই আমাদের। আমরা আজকে IP(Internet Protocol) নিয়ে গভীর সমুদ্রে ডুব দিবো।

📻প্রথমে আসা যাক এই IP বা ইন্টারনেট প্রটোকল ব্যাপারটা আসলে কি?🤔 সেটা নিয়ে কথা বলবো। আইপি হচ্ছে এমন একটি জিনিস যেটা এক কম্পিউটারের সাথে আর এক কম্পিউটারের💻 যোগাযোগ এর জন্য কিছু নিয়ম নীতি। কিন্তু এখানে যোগাযোগ বলতে কম্পিউটার আমাদের কি বুঝাতে চাচ্ছে। যোগাযোগ বলতে আমরা বুজতে পারি কম্পিউটার তার প্রসেস শেয়ার করা বুঝায়। 😎

যখন আমরা এইচটিএমএল শিখি তখন আমরা প্রথমে দুইটি অংশের সাথে পরিচিত হই। একটি হেড👒 এবং অপরটি বডি নামে দুইটি অংশ থাকে। কি ভাই বললেন যে আইপি নিয়ে কথা বলবেন, এখন দেখছি এইচটিএমএল শেখানো শুরু করে দিয়েছেন। ব্যাপারটা আসলে কি?

বাপ্যারটা আসলে তেমন কিছু না। আইপির দুইটি অংশ থাকে। একটিকে IP Header বলা হয়। অপর একটি অংশ Data।🤏

তো মাথা কথাটা যখন চলে এসেছে।🤕 মাথার একটু পোস্টমর্টেম করা যাক। দেখি মাথার মধ্যে এমন কি আছে।😆

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

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

এই হেডারে থাকা কিছু গুরুত্বপূর্ণ ফিল্ড হল:
🌐📤 IP হেডার এর সমস্ত ফিল্ডসমূহ 📥🌐

🔹Version: Specifies the version of the IP protocol being used, which is usually IPv4 or IPv6.
এই ভার্সন ফিল্ড ৪ বিট এর মাধ্যমে আমাদের বলে দেয় যে এই আইপি ভার্সন IPv4 না কি IPv6।
IPv4: 0100
IPv6: 0110

🔹Internet Header Length (IHL): আইপি প্রটোকলের হেডারে IHL বা ইন্টারনেট হেডার লেংথ ফিল্ড হল প্রথম 4 বিট। এই ফিল্ডটি একটি নেটওয়ার্কের মধ্যে প্যাকেটের হেডারের কত বাইট ব্যবহার হচ্ছে সেটা নির্দেশ করে। 🖨

এই IHL ফিল্ড এর সর্বনিম্ন মান ৫, যা ২০-বাইট একটি আইপি হেডার বোঝায় (৫ x ৩২ বিট = ১৬০ বিট)। এই সর্বনিম্ন মানটি মূলত সকল আইপি প্যাকেট এ ডিফল্ট ভাবে ব্যবহৃত হয়। আর সর্বাধিক মান হল ১৫, যা একটি ৬০-বাইট এর আইপি হেডার বোঝায় (১৫ x ৩২ বিট = ৪৮০ বিট)। কিন্তু এতে মনে রাখতে হবে যে, IHL মান পাঁচের বেশি হলে এটি সাধারণত খুব বেশি হওয়া না। এছাড়া ১৩ থেকে ১৪ ব্যবহৃত হয় কিছু বিশেষ প্রোটোকলে যেখানে আইপি হেডার এর দৈর্ঘ্য বেশি হতে পারে। এর চেয়ে বেশি মান হল ১৫, যা খুব বেশি ব্যবহৃত না হলেও কিছু বিশেষ প্রোটোকলে ব্যবহৃত হতে পারে।

🔹Type of Service (ToS): টাইপ অফ সার্ভিস (ToS) হল একটি প্রোটোকল ফিল্ড যা কম্পিউটার নেটওয়ার্কের রাউটারগুলির 🔗 দ্বারা প্যাকেটগুলি কেমনভাবে হ্যান্ডল করা উচিত সেটা নির্দেশ করে। আপনার রাউটারের যদি কোনো কারণে অনেক প্যাকেট একসাথে প্রসেস করতে নিয়ে ফেল করে তখন সেটি কিভাবে হ্যান্ডেল করা হবে সেটা বলে দাওয়া থাকে।

🔹Total Length: টোটাল লেংথ একটি নেটওয়ার্ক প্রোটোকল ফিল্ড যা প্রেরিত প্যাকেটের হেডার এবং ডাটাসহ সম্পূর্ণ দৈর্ঘ্যকে নির্দেশ করে।

🔹Identification: নির্দিষ্ট একটি সেশনের মধ্যে প্রতিটি প্যাকেটকে ইউনিকভাবে চিহ্নিত করে। আপনার প্যাকেটের সাইজ যদি বড় হয়। এবং সেটি যদি আপনি টুকরো টুকরো করে পাঠান তাহলে প্যাকেটের সাথে ইউনিকভাবে বলে দিতে হয় যেন পরে প্যাকেটগুলি পুনরুদ্ধার করতে সাহায্য করতে পারে।

🔹Flags: ফ্ল্যাগের মাধ্যমে উল্লেখ করা হয়। এই প্যাকেটটি কি ভেঙ্গে ভেঙ্গে পাঠানো হবে কি না। 🚩

Fragment Offset: এটি প্যাকেটের ডাটাগুলো কিভাবে ছিল,কোন অবস্থানে ছিল সেটি নির্দেশ করে। এটি প্যাকেটগুলি পুনরায় তার পূর্বের অবস্থায় ফিরিয়ে আনতে সাহায্য করে। 🔃🔄

🔹Time to Live (TTL): এই ফিল্ডটি প্যাকেটের যাত্রাপথের সমস্ত রাউটার দ্বারা পরীক্ষা করা হয়। প্রতিটি রাউটার প্যাকেটের TTL মান কমিয়ে দেয় এবং যদি এর মান ০ হয় তবে সে প্যাকেটটি বাতিল করে দেয়া হয়। আপনি যদি ping google.com এই কমান্ড ব্যবহার করেন তাহলে দেখতে পাবেন। সেই প্যাকেটটি একটি TTL মান ডিফল্ট ভাবে দিয়ে দেওয়া আছে। ⌛

🔹Protocol: নাম শুনে আমরা বুঝতে পারছি যে আমারা যে ডাটাগুলো পাঠাচ্ছি। সেগুলো কোন প্রটোকল ব্যবহার করে পাঠানো হচ্ছে সেটি নির্দেশ করে। যেমনঃ TCP, UDP বা ICMP অনেক রকমের হতে পারে। ফলে আমাদের রাউটারের পুরো ডাটা রিড না করে বুঝে যায়। এটাই মেটা ডেটার মজা। ডাটার সম্পর্কে ডাটা। 🚫

🔹Header Checksum: হেডার চেকসাম নেটওয়ার্ক প্রোটোকল এর একটি ফিল্ড যা হেডারে রয়েছে। এটি হেডারের জন্য একটি চেকসাম (Checksum) নির্ণয় করে যা ট্রান্সমিশনে ত্রুটি আছে কি না তা পরীক্ষা করার জন্য ব্যবহৃত হয়। চেকসাম হল একটি ক্রিপ্টোগ্রাফিক ফাংশন যা হেডারের একটি সেট এর উপর কাজ করে।
আপনি যে প্যাকেট পাঠিয়েছেন সেটি অক্ষুণ্ণ ভাবে তার গন্তব্যে পৌছায়। তার ত্রুটি নির্ণয় করে থাকে।🏁

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

🔹Source IP Address: ৩২ বিটের মাধ্যমে প্রেরকের আইপি ঠিকানা নির্দেশ করে। 🐞

🔹Destination IP Address: ৩২ বিটের মাধ্যমে প্রাপকের আইপি ঠিকানা নির্দেশ করে। 🕸🕷

🔹Options: প্যাকেটে অতিরিক্ত তথ্য ৩২ বিটের মাধ্যমে সরবরাহ করতে ব্যবহৃত হয়। এই তথ্য সাধারণত নিরাপদতা বা সেবার গুনগত মান নির্ধারণ করতে ব্যবহৃত হয়। 🍢

বিশেষ দ্রষ্টব্যঃ IP Header Deep Drive করার কারন হলো #traceroute, #ping, #tcpdump, #telnet, টুলসগুলো মাধ্যমে ভাল ভাবে নেটওয়ার্ক ডিবাগ করার দক্ষতাকে অন্য লেভেলে নিয়ে যাওয়া।

পরবর্তীতে আসতে যাচ্ছে tcpdump টুলসের মাধ্যমে নেটওয়ার্ক আনাল্যসিস। প্যাকেট দেখা ।🧨🧨🧨🎉✨