hi, let Avik connect you.

** You can give your thought about this content and request modifications if needed from Ask For Modifications page. Thank You.

** You can check all the posts on the Posts page.

** More about me in the About Me section.

Network Packet এর সাথে একটু কোলাকুলি -

আগের পর্বে প্যাকেটের ফরম্যাট সম্পর্কে টুকটাক লিখেছিলাম। এই পর্ব তারই ধারাবাহিকতা। আগের পর্ব পড়ে না থাকলে এখান থেকে পড়ে নিন। 

এই পর্বে আমরা দেখবো ইথারনেট ফ্রেমের বিভিন্ন অংশের অল্প বিস্তর বর্ণনা। প্রতিটা ইথারনেট ফ্রেম মূলত নিচের মত দেখতে হয়ে থাকে। ম্যানুফ্যাকচারিং (যারা Internet এর মাধ্যমে এক্সেস করা যায় এমন Device তৈরি করে) কোম্পানী নিজেদের হিসেবে ফ্রেম এ টুকটাক মডিফাই করলেও মূল জিনিসগুলো ঠিকই থাকে। এদের দুইটা পার্ট থাকে প্রধানত। (১) MAC Header (২) IP Packet Header / Data।

MAC Header মূলত ১৪ বাইটের হয়ে থাকে। এর মধ্যে Destination MAC থাকে ৬ বাইটের। Source MAC থাকে ৬ বাইটের। এবং Ether Type থাকে ২ বাইটের। 

Destination MAC হচ্ছে যেই মেশিনকে ডাটা পাঠানো হচ্ছে। আর Source MAC হচ্ছে যেই মেশিন থেকে ডাটা পাঠানো হচ্ছে। MAC Address দেখতে এমন - AA:BB:CC:DD:EE:FF। এখানে কোলন (:) বাদ দিয়ে বাকি সব গুলো হেক্সাডেসিমাল** ডিজিট। Ether Type এ থাকে কোন প্রোটোকলে ডাটা গুলোকে Encapsulate করা হয়েছে। যেমন, 0x0800: IPv4 protocol দিয়ে করা হয়েছে। 

আপনার এবং আপনার প্রেমিকার ডিভাইসের নাম পরিচয় জানা হয়ে গেলো। এবার যেটা জানতে হবে ওই ডিভাইস টা কোন নেটওয়ার্কে আছে। এটার জন্য আমাদের হেল্প করবে IP Packet Header। 

IP Packet Header দেখতে নিচের মতন হয়। 

Version এর সাইজ ৪ বিটের হয়। এর মধ্যে প্যাকেটের IP প্রোটোকল এর ইনফরমেশন আছে। 

প্রশ্ন আসতে পারে, উপরের Ether Type এ  প্রোটোকল ইনফরমেশন থাকাতে এটা কেন? কাহিনী হচ্ছে নেটওয়ার্ক প্যাকেটে এক ডিভাইস থেকে অন্য ডিভাইসে লেয়ার টু লেয়ার (OSI, TCP/IP) কমিউনিকেশনের মাধ্যমে ট্রান্সফার হয়। আপনার প্রেমিকার কূটনী বান্ধবীর মতো এক লেয়ার অন্য লেয়ারে কোন বাম হাত ঢোকায় না। তাই নিজের জন্য যা যা দরকার সেই ইনফরমেশন নিজের লেয়ারের কাছেই থাকে। 

Header Length এর সাইজ ও ৪ বিটের হয়। এর মধ্যে IP Header এর দৈর্ঘ্য কতটুকু সে ইনফরমেশন থাকে। IP Header এর দৈর্ঘ্য Maximum ৬০ বাইটের হতে পারে।

Types of Service (TOS) এর সাইজ ৮ বিট। কি ধরনের সার্ভিস এই প্যাকেট প্রোভাইড করছে তার ইনফরমেশন থাকে এই ২ বাইটে। প্রেমিকার ডিভাইস এটা দেখে বুঝে নেয় কিভাবে আপনার ডিভাইস ডাটা পাঠাচ্ছে। এবং কিভাবে তাকে নিতে হবে। যেমনঃ Best Effort, Expedited Forwarding, Assured Forwarding, Class Selector। 

Total Length, ১৬ বিটের হয়ে থাকে। এর মধ্যে সম্পুর্ণ IP Datagram এর দৈর্ঘ্য কতটুকু সেই ইনফরমেশন থাকে। IP Datagram এর সর্বোচ্চ দৈর্ঘ্য 65535 বাইটের হতে পারে। 

Identification সেকশনের সাইজ ১৬ বিট। প্রেমিকার ডিভাইসে যখন ডাটা যায় তখন অল্প অল্প সাইজের প্যাকেট এ করে যায়। প্রেমিকার কাছে গিয়ে ডাটা এলোমেলো হয়ে গেলে তো ব্রেকাপের সম্ভাবন থাকে। তাই ঠিকঠাক ক্রমে ডাটা পৌছানোর জন্য এই ব্যবস্থা।

IP Flags এ ৩ টি বিট থাকে। এর মধ্যে Fragment ইনফরমেশন থাকে। একটা প্যাকেটের Maximum Transmission Unit ডিটারমাইন করতে হবে কিনা সেটার ইনফরমেশন এখানে থাকে। 

Fragment Offset এর সাইজ ১৩ বিট। বর্তমান প্যাকেট ডাটগ্রামের কোথায় Fragment বিলং করে এখানে থাকে সেই ইনফরমেশন। 

Time To Live এর সাইজ হলো ৮ বিট। আপনার প্রেমিকার কাছে চিঠি যাবার আগে কয়টা পোস্ট অফিস হয়ে যাবে এখানে সেই ইনফরমেশন থাকে।

Protocol ইনফরমেশন ব্যবহার হয় মেসেজ পাঠানোর সময় কোন প্রোটোকল এ পাঠানো হচ্ছে সেটা ডিটারমাইন করার জন্য। যেমন, 1: ICMP (Internet Control Message Protocol), 6: TCP (Transmission Control Protocol), 17: UDP (User Datagram Protocol) ইত্যাদি। এর সাইজ ও ৮ বিট। 

রঞ্জনার দাদার মত ইন্টারনেট এ আপনার মেসেজ নষ্ট করার জন্য কিছু মানুষ বসে থাকে। আপনার মেসেজ যাতে নষ্ট তা হয় সেটার ওই দাদাদের বোঝার অযোগ্য করে পাঠানো হয়। আর এই কাজটা করে Header Checksum এ থাকা ইনফরমেশন গুলো। এর সাইজ ১৬ বিট। 

Source/Destination Address এর প্রত্যেকটির সাইজ ৩২ বিট করে। Source Address মূলত আপনার ডিভাইসের IP এবং Destination হচ্ছে আপনার প্রেমিকার। এই Address হচ্ছে আপনার Network সম্পর্কে ধারণা দেয়। Source/Destination Address দেখতে - 107.109.213.107 এরকম হয়। ডট (.) দিয়ে আলাদা করা চারটা অংশের সর্বোচ্চ পরিমাণ 0-255 পর্যন্ত হতে পারে।

পরবর্তী পর্বে থাকছে কিভাবে Python এর সাহায্যে এই সকল ইনফরমেশন আমরা বের করে আনতে পারি আমাদের কম্পিউটার থেকে। 


** হেক্সডেসিমাল - সংখ্যা গননা করার ১৬ ভিত্তিক সিস্টেম। আমরা নরমালি ১০ ভিত্তিক সিস্টেম ব্যবহার করি। এজন্য 0-9 পর্যন্ত ১০ টা ডিজিট থাকে। হেক্সডেসিমাল সিস্টেম এ ১৬ টা ডিজিট থাকে 0-9 এবং A-F। 


*** Special Thanks To Shajal bhai for giving me suggestions to write this content.