আকাশ নামের এক ছেলের কাছে একটা ফোন এলো। ওপাশ থেকে একজন খুব সিরিয়াস গলায় বলল, "আমাদের ব্যাংকের server maintain করা হচ্ছে। আপনার অ্যাকাউন্টে একটু সমস্যা হয়েছে। এখনই ঠিক না করলে অ্যাকাউন্ট freeze হয়ে যাবে।" আকাশ ঘাবড়ে গেল। "আপনাকে একটা OTP সেন্ড করেছি, জাস্ট ওটা বলেন। সব ঠিক হয়ে যাবে।" আকাশ কিছু না ভেবেই OTP টা দিয়ে দিল। পরের মুহূর্তেই ওর ফোনে মেসেজ এলো—অ্যাকাউন্টের পুরো টাকা গায়েব! এখন আপনার মনে প্রশ্ন জাগতে পারে। আমি তো জাস্ট কয়েকটা সংখ্যা দিলাম। তাহলে— আমার ব্যাংকের টাকাগুলো অন্য কারো কাছে চলে গেল কীভাবে? এটা কীভাবে সম্ভব? তারা কি জাদুকর? নাকি আপনার ফোনের ভেতরে ঢুকে টাকা নিয়ে গেল? আসলে কোনো জাদু নেই। সবকিছুই ঘটছে একটা বিশাল জালের মাধ্যমে। যেটার নাম Internet। Internet জিনিসটা কী? চিন্তা করেন, আপনি একটা পাড়াতে থাকেন। পাড়ার বাড়িগুলো একে অপরের সাথে রাস্তা দিয়ে কানেক্টেড থাকে। ইন্টারনেটও ঠিক এরকমই। এখানে বাড়িগুলো হচ্ছে এক একটা computer বা machine। আর রাস্তাগুলো হচ্ছে তার বা cable। এই তারের মাধ্যমেই পুরো দুনিয়ার সব কম্পিউটার একসাথে কানেক্টেড থাকে। এখন যেমন ইন্টারনেটকে সিম্পল এবং সহজ মনে হয়, আগে কিন্তু এত সহজ ছিল না। ১৯৬০-এর দশকের শেষের দিকে, যুক্তরাষ্ট্রের ডিফেন্স সিস্টেম নিজেদের ভেতরে সিক্রেট ডাটা শেয়ার করার জন্য একটা নেটওয়ার্ক তৈরি করে, যার নাম ছিল ARPANET। তখন এটা শুধুমাত্র সরকারি কাজের ব্যবহারের জন্য ছিল। এটাই মূলত পরবর্তীতে বিবর্তিত হয়ে internet হয়ে যায়। Internet উন্মুক্ত হতে শুরু করে যখন Tim Berners-Lee World Wide Web (WWW)-এর প্রবর্তন করেন। আর আজকের দিনে আমরা যা দেখছি YouTube, Facebook, Google, Netflix, Cloud, Online Banking, সব এই internet-এর ফসল। DNS: ইন্টারনেটের ফোনবুক মনে করুন আপনার মা আপনাকে বলল, "ঐ মিস্টার মনসুর সাহেবের বাড়ির সামনে যে দোকান আছে সেখানে যাবি, গিয়ে লিস্টের মালামালগুলো নিয়ে আসবি।" সাথে কিছু টাকাও দিল। এখন আপনি কী করবেন? আপনি সোজা চলে যাবেন সেই দোকানে আর যা কাজ আছে শেষ করে ফেলবেন। কিন্তু বিষয়টা যদি অন্য দূরের কাউকে করতে বলা হয় তাহলে সে কী করবে? তার দোকানে যেতে হবে, skip করতে পারবে না। আর সে আপনার এলাকার কিছুই চেনে না। এখন তাকে যেতে হলে নিচের কাজগুলো করতে হবে: এলাকা সম্পর্কে যে ভালো চেনে-জানে তার কাছে গিয়ে জিজ্ঞাসা করে জেনে নিতে হবে, then সেই instruction follow করে সেই দোকানে যাবে। এখন সেই জানা লোকটা আপনিও হতে পারেন। DNS ঠিক এই কাজটাই করে। একটু আগেই বললাম যে internet অনেক computer-কে একসাথে করে communicate করে। এই computer-গুলোকে identify করার জন্য unique IP address থাকে। এগুলো দিয়ে সেই computer-গুলো access করা যায়। IP address নিয়ে একদিন বিস্তারিত কথা হবে। কিন্তু কথা হচ্ছে, এই IP address মনে রাখা একটু কষ্টকর, এর জন্য Domain Name System (DNS) use করা হয়। এখন এই domain-এর বিপরীতে তো IP address-গুলো save করা লাগবে, যেমনভাবে আপনি আপনার এলাকার সবকিছু নিজের memory-তে save করে রেখেছেন। DNS-এ আপনার domain name-এর বিপরীতে একটা IP address save করা থাকবে এবং আপনি URL-এ domain লিখে যখন hit করবেন তখনই, এই IP address resolve হয়ে যাবে এবং destinated computer-এ পৌঁছে যাবে। আশা করা যায়, DNS সম্পর্কে idea হয়ে গেছে। TCP/IP: ডেটার ডাকঘর একটা বিষয় চিন্তা করুন, আপনি যখন আপনার কোনো friend বা senior বা কোনো ব্যক্তির সাথে কোনো conversation করতে চান তখন আপনি কী করেন? normally তাকে ভালো-মন্দ জিজ্ঞাসা করে তার কাছ থেকে জেনে নেন যে সে free আছে কিনা বা তার সাথে কথা বলতে পারবে কিনা? সে যদি free থাকে বা রাজি হয় তাহলে কথাবার্তা শুরু হয় তারপর একটা সময় শেষ হয়ে যায়। অনেক ক্ষেত্রে, সে কিন্তু আপনার এই request reject করে দিতে পারে, কারণ তার অন্য কাজ থাকতে পারে বা আপনার সাথে তার কথা বলার ইচ্ছা নেই। similar-ভাবে, যখন ২টা computer connect করার try করা হয়, তখন কিন্তু এই বিষয়গুলো ভাবতে হয়। আসলে সেই machine কি free আছে বা আমার সাথে connect হবে কিনা। accept করলেই তারপর connect করতে হবে। এই connection তো আর এমনি মুখে বললেই হয়ে যাবে না। এর জন্য rules and regulation প্রয়োজন বা একটা Protocol প্রয়োজন। সেই protocol-টাই হচ্ছে TCP/IP। TCP/IP হচ্ছে একটা protocol suite, যা ২টা computer-কে connect করতে help করে এবং data flow-কে regulate করে। এটা মূলত OSI model-এর Networking layer-এ কাজ করে। Data-কে packet-এ transform করে network-এর through-তে অন্য computer-এ send করার জন্য prepare করে। TCP/IP big topic। এই simple একটা topic নিয়ে পুরা একটা book লিখে ফেলা যাবে। আমি simple-ভাবে বুঝানোর try করলাম। Note: TCP/IP নিয়ে যদি কেউ বিস্তারিত পড়তে চান তাহলে আগে OSI model-টা ভালো করে পড়ে নিবেন। আর তারপর internet আর networking সম্পর্কে হালকা basic idea নিলেই আপনি TCP/IP বোঝার জন্য prepare। HTTP: ভাষাটা শেখো একটু আগেই বললাম যে TCP/IP দিয়ে ২টা computer connect করা যায়। আর সেখানে data-গুলো packet-এ transfer করা হয়। কিন্তু problem হচ্ছে এই packet-গুলোকে কিন্তু আপনি দেখতে পারবেন না। এই packet-গুলো সুন্দর করে সাজাতে হবে যাতে করে user বা client খুব easily এগুলো use করতে পারে। এই কাজটাই করে HTTP (Hyper Text Transfer Protocol)। যখন আপনি browser-এ কোনো URL-এ hit করেন তখন সেটা server থেকে packet আকারে data client-এর কাছে আসে। এরপরে HTTP সেটাকে browser-এর জন্য ready করে এবং browser এই content-গুলো render করে তখন আপনি website-এর visual look-টাকে দেখতে পারেন। HTTP মূলত এই কাজটাই করে থাকে। SSL: Security এতক্ষণ তো অনেক কিছুই বললাম। এখন কথা হচ্ছে সবাই যদি এই rules and regulation follow করে internet-এ data pass করা শুরু করে তাহলে কিন্তু যেকেউ চাইলেই একটু trick করে অন্য জনের data-র access নিতে পারবে। তাহলে solution কী? Solution is SSL (Secure Sockets Layer)। SSL-এর কাজ হচ্ছে ডাটাকে Encrypt করা। Encrypt করা, সেটা আবার কী জিনিস? ধরুন, আপনি একটা চিঠিকে একটা বাক্সে তালাবদ্ধ করে পাঠালেন। এই তালার চাবি আছে শুধু আপনার আর প্রাপকের কাছে। মাঝপথে কেউ বাক্সটা পেলেও খুলতে পারবে না কষ্টে, কারণ তার কাছে চাবি নেই। SSL মূলত এই কাজটাই করে। Data-কে key দিয়ে encrypt করে send করে এবং অন্য computer থেকে receive করার পরে key দিয়ে data-টাকে decrypt করে। এই ক্ষেত্রে মাঝখান থেকে কেউ data-কে পেলেও তা decrypt করতে পারবে না। এই encryption decryption-এর জন্য অনেকগুলো algorithm রয়েছে। এখানে algorithm ভেদে এক বা একাধিক key ব্যবহার করা হয়ে থাকে encrypt/decrypt করার জন্য। এই নিয়ে অন্য একটা ব্লগে বিস্তারিত আলোচনা হবে। Internet Protocol HTTP-এর মতো, এটাও একটা protocol। এই protocol-এর কাজ হচ্ছে, দুইটা computer-এর মধ্যে connection establish করা এবং data transfer-এর জন্য ideal (short and less costly) path খুঁজে বের করা। Then data packet properly transfer করা। Internet-এর through-তে যে data transfer হয়, তবে একটা জিনিস—এই protocol কিন্তু data loss হলে সেটার responsibility নিবে না। এটা জাস্ট data transfer করবে। That's it। এই responsibility নেওয়ার জন্য transport protocol যেমন TCP ব্যবহার করা হয়। IP Routing IP Routing হচ্ছে internet-এর through-তে data transfer করার জন্য ideal path খুঁজে বের করা। এই routing করার জন্য কিছু algorithm ব্যবহার করা হয়। যেমন: OSPF (Open Shortest Path First), BGP (Border Gateway Protocol) ইত্যাদি। যখন কোনো request কোনো machine-এ পাঠানো হয় তখন ওই machine-এর IP address-কে target করে request send হয়। তখন request intercept করে router। Router-এর local routing table ওই machine-এর IP address store করে রাখে। সেখান থেকে fetch করে router এই request particular ওই machine-এ transfer করে দেয়। TCP (Transmission Control Protocol) এই protocol-টার কাজ হচ্ছে, data-এর consistency এবং reliability ensure করা। Internet Protocol data transfer করতে help করে, কিন্তু data loss হলে তার responsibility নেয় না। Data যাতে loss না হয় এবং properly transfer হয় সেটা ensure করার জন্য TCP ব্যবহার করা হয়। Basically TCP একটা connection establish করে data transfer start করে। Receiver end-এ data receive হলে, সেখান থেকে একটা acknowledgment-এর message আসে। এইভাবেই data-র reliability ensure হয়। TCP-র reliability ensure করার জন্য flow control এবং error control-এর ব্যবস্থা আছে। Present time-এ TCP এবং IP এই দুইটা protocol একসাথে ব্যবহার করা হয়। N.B. TCP একটা huge topic। এর অনেকগুলো layer রয়েছে। প্রত্যেকটা layer different different responsibility carry করে। এখানে সে বিষয় নিয়ে আলোচনা করছি না। অন্য একদিন সেটা নিয়ে আলোচনা হবে। UDP (User Datagram Protocol) এটা TCP-র মতো একটা protocol। কিন্তু এখানে delivery check করা হয় না। অনেকটা fire and forget-এর মতো। এই protocol real-time communication যেমন Video streaming, Voice Calling, online Gaming ইত্যাদিতে ব্যবহার হয়। তাহলে হ্যাক হলো কীভাবে? এখন একটা প্রশ্ন থেকেই যায়, এত কিছু থাকার পরেও আকাশের টাকা গায়েব হলো কীভাবে? এখানে hacker-রা internet break করেনি। Hacker আকাশের brain বা mobile hack করে টাকাটা গায়েব করেছে। আসলে আকাশের account internet-এর মাধ্যমে access করার facility আছে। এখন ঐ account access করার জন্য একটা OTP দরকার ছিল যেটা মূলত আকাশের mobile-এ send হবে। সেটা পেলেই পুরা account-এর access পেয়ে যাবে। আর hacker-রা কিন্তু call করেই সেই OTP-টা collect করেছে। এভাবেই মূলত টাকাগুলো গায়েব হয়েছে। বটম লাইন ইন্টারনেট মূলত অসংখ্য কম্পিউটারের একটা বিশাল নেটওয়ার্ক, যারা একে অপরের সাথে তারের মাধ্যমে কানেক্টেড। ডাটা ট্রান্সফার করার জন্য এখানে HTTP, TCP/IP-এর মতো প্রটোকল কাজ করে। আর ডাটাকে সিকিউর রাখার জন্য কাজ করে SSL বা Encryption। এই বিষয়ে আরও গভীরে যাওয়ার ইচ্ছা থাকলে OSI model সম্পর্কে একটু রিসার্চ করার অনুরোধ রইল। আপনার সবচেয়ে বড় challenge কী ছিল? কমেন্টে জানাবেন 👇