চের ডন
দ্বারাওপেন সিস্টেম ইন্টারকানেকশন মডেল জানুন

ওভারভিউ
এই সিরিজ জুড়ে, আমরা বেসিকগুলি মোকাবেলা করব যেমন:
(পর্ব 1) কিভাবে DNS কাজ করে?
(পর্ব 2) নেটওয়ার্ক স্ট্যাক, OSI মডেল [আপনি এখানে আছেন!]
(পর্ব 3) HTTP পদ্ধতি এবং বিন্যাস
(পর্ব 4) ক্লায়েন্ট আইডেন্টিফিকেশন
(পার্ট 5) বেসিক/ডাইজেস্ট প্রমাণীকরণ
(পর্ব 6) HTTPS SSL/TLS
OSI মডেল
ওপেন সিস্টেম ইন্টারকানেকশন (ওএসআই) মডেল কম্পিউটার সিস্টেমে টেলিযোগাযোগের জন্য একটি প্রমিত মডেল। এটি অন্তর্নিহিত প্রযুক্তি বিবেচনা করে না, বরং যোগাযোগের সাথে জড়িত স্তরগুলিকে বিবেচনা করে। আসুন আমরা OSI মডেলের মধ্যে বিভিন্ন স্তর অন্বেষণ করি:
সাধারণ 5-স্তরযুক্ত OSI মডেল
1. অ্যাপ্লিকেশন স্তর
সংযোগ স্থাপন হয়ে গেলে এই স্তরটি অ্যাপ্লিকেশনগুলিকে নেটওয়ার্কে যোগাযোগ করতে দেয়, যেমন ওয়েব ব্রাউজার (অ্যাপ্লিকেশন) থেকে সার্ভারে। এই স্তরের প্রোটোকলের উদাহরণ হল HTTP এবং TELNET৷
৷হাইপারটেক্সট ট্রান্সফার প্রোটোকল (HTTP)
ইন্টারনেটের মাধ্যমে ফাইল স্থানান্তর করার নিয়মগুলির একটি সেট। উদাহরণস্বরূপ, আপনি যখন ব্রাউজারে URL প্রবেশ করেন, ব্রাউজার ওয়েবপৃষ্ঠার জন্য একটি HTTP অনুরোধ পাঠায়। হোস্ট তখন ওয়েবপেজ ফেরত দেবে, এর মধ্যে থাকা সমস্ত উপাদান যেমন ছবি, টেক্সট, ভিডিও, স্টাইলিং ফন্ট ইত্যাদি।
2. পরিবহন স্তর
এই স্তরটি হোস্ট-টু-হোস্ট বার্তাগুলির যোগাযোগের জন্য দায়ী। এই স্তরের প্রোটোকলের উদাহরণগুলির মধ্যে রয়েছে TCP এবং UDP।
ট্রান্সমিশন কন্ট্রোল প্রোটোকল (TCP)
সবচেয়ে সাধারণ সংযোগ-ভিত্তিক প্রোটোকল। এটি সংজ্ঞায়িত করে কিভাবে একটি নেটওয়ার্ক কথোপকথন স্থাপন এবং বজায় রাখা যায়। এটি একটি সংযোগ স্থাপনের জন্য দায়ী (একটি সকেট বলা হয় ) ক্লায়েন্ট এবং হোস্টের মধ্যে 3-ওয়ে হ্যান্ডশেক।

ডেটার অনুরোধকারী ব্যবহারকারী সার্ভারে একটি SYN ডেটা প্যাকেট পাঠাবে, অনুরোধ করে সিঙ্ক্রোনাইজেশন . সার্ভার তারপর ব্যবহারকারীকে একটি SYN-ACK দিয়ে প্রতিক্রিয়া জানাবে, এটি নির্দেশ করে যে এটি স্বীকৃত ডেটা প্যাকেট, এবং পাশাপাশি সংযোগ করতে চাই। ব্যবহারকারী সার্ভারে শেষ ACK পাঠালে সংযোগটি প্রতিষ্ঠিত হয়।
TCP তার কমনীয়তার কারণে সবচেয়ে সাধারণ, যেখানে এটি নিম্নলিখিতগুলি অফার করতে সক্ষম:
সংযোগ-ভিত্তিক যোগাযোগ
ডেটা আদান-প্রদানের আগে সংযোগ নিশ্চিত করতে এন্ড-পয়েন্টগুলির মধ্যে একটি হ্যান্ডশেক প্রোটোকল স্থাপন করুন এবং ডেটা স্ট্রিম (ডেটা প্যাকেট) হিসাবে প্রেরণ করুন।
নির্ভরযোগ্যতা
চেকসাম ব্যবহার করে, এটি নিশ্চিত করে যে প্রেরিত এবং প্রাপ্ত ডেটা প্যাকেটগুলি একই। যদি অনুপস্থিত/দূষিত প্যাকেট থাকে, তাহলে এটি প্রেরককে একটি NACK বার্তা পাঠিয়ে ডেটা প্যাকেটগুলি পুনরায় প্রেরণের জন্য অনুরোধ করবে৷
অর্ডার
ডেটা প্যাকেটগুলি সংখ্যাযুক্ত এবং প্রেরণ করা হয়। যেমন, টিসিপি নিশ্চিত করবে যে প্রাপ্ত প্যাকেটগুলি আবেদন করার আগে পুনরায় অর্ডার করা হয়েছে৷
প্রবাহ নিয়ন্ত্রণ
বাফার ওভাররান/আন্ডাররান প্রতিরোধ করার সময় দক্ষতা উন্নত করার জন্য ডেটা ট্রান্সমিশনের হার নিয়ন্ত্রিত হয়, যেখানে প্রাপক এটি প্রক্রিয়া করতে সক্ষম হওয়ার চেয়ে দ্রুত ডেটা পাঠানো হয় এবং এর বিপরীতে।
এর পেছনের মেকানিক্স নিচে TCP স্লো স্টার্ট বিভাগে ব্যাখ্যা করা হয়েছে।
মাল্টিপ্লেক্সিং
মূলত, এটি একই সকেটে একই সাথে একাধিক স্ট্রিম তথ্য পাঠাতে সক্ষম। এগুলো সকেটের বিভিন্ন পোর্টের মাধ্যমে করা হয়। আমরা নিবন্ধে আরও মাল্টিপ্লেক্সিং এবং পাইপলাইনিংয়ের মধ্যে পার্থক্য নিয়ে আলোচনা করব।
ইউজার ডেটাগ্রাম প্রোটোকল (UDP)
যদিও TCP-এর মতো, এটি একটি সংযোগ-হীন প্রোটোকল। এটি টিসিপি-এর সম্পূর্ণ বিপরীত, এটিকে অবিশ্বস্ত এবং শৃঙ্খলাহীন করে তোলে। বাদ দেওয়া প্যাকেটগুলি পুনরায় প্রেরণ করা হবে না, যার ফলে ডেটাতে ফাঁক হবে৷

যাইহোক, এটি সময়-সংবেদনশীল অ্যাপ্লিকেশনগুলির জন্য সেরা করে তোলে, যেমন ইন্টারনেটের মাধ্যমে ভয়েস কল (VoIP)। এটি কারণ এটি দ্রুত তৈরি করে, সংক্রমণ করার আগে 3-উপায় হ্যান্ডশেকের প্রয়োজন হয় না। এছাড়াও, ড্রপ করা ডেটা প্যাকেটগুলি ভিওআইপি-তে কোনও সমস্যা নয়, কারণ ড্রপ করা প্যাকেটগুলির সাথে সাধারণ ছোট ফাঁকগুলি পরিচালনা করতে মানুষের কান খুব ভাল৷
3. নেটওয়ার্ক স্তর
এই স্তরটি নেটওয়ার্ক সংযোগের জন্য ডাটা রাউটিং পাথ প্রদানের জন্য দায়ী। মূলত, এটি সবচেয়ে যৌক্তিক পথের সাথে নেটওয়ার্ক জুড়ে ডেটা প্যাকেটগুলিকে স্থানান্তরিত করে৷
৷ইন্টারনেট প্রোটোকল (IP)
ডেটা প্যাকেটের গঠন সংজ্ঞায়িত করে, সেইসাথে এটিকে উৎস এবং গন্তব্য তথ্যের সাথে লেবেল করে।
উৎস এবং গন্তব্য তথ্য IP ঠিকানার আকারে থাকে, যা 104.16.121.127 আকারে হতে পারে (IPv4), অথবা 2001:db8:0:1234:0:567:8:1 (IPv6)।
4. লিঙ্ক/ ফিজিক্যাল লেয়ার
এই স্তরটি হল OSI মডেলের মূল, যেখানে তথ্য স্থানান্তরিত হয় লোকাল এরিয়া নেটওয়ার্কে (LAN) লিঙ্ক লেয়ারের জন্য এবং একটি শারীরিক সংকেত যেমন বৈদ্যুতিক, যান্ত্রিক মাধ্যম কোড শব্দ বা চিহ্ন আকারে ভৌত স্তরে।
ভিজ্যুয়ালাইজিং রুট
tracert google.com ব্যবহার করা হচ্ছে , রুটটি ক্লায়েন্ট-সাইড (আপনার কম্পিউটার) থেকে হোস্ট (google.com) পর্যন্ত ট্রেস করা যেতে পারে।

উপরে থেকে, আপনি আমার ডিভাইস 192.168.1.254 থেকে শুরু হওয়া রুটটি দেখতে পারেন রাউটারে 10.243.128.1 , পর্তুগালে অবস্থিত ইন্টারনেট সার্ভিস প্রোভাইডার (ISP) এর মধ্য দিয়ে যাওয়ার আগে এবং আরও অনেক কিছু।
পরিপূরক স্তরগুলি
TCP/IP মডেল
টিসিপি ড্রপ করা ডেটা প্যাকেটগুলি পুনরায় প্রেরণের জন্য অনুরোধ করবে এবং সেগুলি পুনরায় অর্ডার করবে
আইপি শুধুমাত্র ডেটা প্যাকেটের গঠনের জন্য দায়ী। যেমন, ডেটা প্যাকেটটি দূষিত হলে বা বাদ দিলে এটি সংশোধন করবে না। ক্লায়েন্টের কাছে পাঠানোর আগে ডাটা প্যাকেটের সংখ্যা নির্ধারণ করে এখানেই টিসিপি কার্যকর হয়। ক্লায়েন্টের পক্ষ থেকে, TCP হারিয়ে যাওয়া/দুষ্ট প্যাকেটগুলি পুনরায় প্রেরণের জন্য অনুরোধ করবে এবং তারপরে ডেটার প্যাকেটগুলিকে পুনরায় সাজাতে হবে৷
HTTP/TCP মডেল
আমরা আগেই উল্লেখ করেছি, HTTP এখন TCP হ্যান্ডশেক দ্বারা তৈরি সংযোগের মাধ্যমে অনুরোধ করতে পারে। কিন্তু কিভাবে তারা একে অপরের পরিপূরক?
HTTP স্থায়ী সংযোগগুলি৷
প্রতিটি অনুরোধ/প্রতিক্রিয়ায় একটি নতুন সংযোগ খোলার বিপরীতে এটি একটি একক TCP সংযোগে একাধিক HTTP অনুরোধ/প্রতিক্রিয়ার অনুমতি দেবে৷
স্থায়ী সংযোগের জন্য নমুনা প্রতিক্রিয়া
এটি HTTP হেডারের মাধ্যমে করা হয়, যেখানে Connection: Keep-Alive . ডিফল্টরূপে, সংযোগটি কেবলমাত্র অন্য প্রতিক্রিয়ায় বন্ধ হবে যেখানে Connection: Close 30 সেকেন্ড নিষ্ক্রিয় থাকার পরে পাঠানো হয়৷
TCP স্লো স্টার্ট
আগেই উল্লেখ করা হয়েছে, TCP প্রবাহ নিয়ন্ত্রণ সমর্থন করে। এটি টিসিপি স্লো স্টার্টের মাধ্যমে করা হয়, যা নেটওয়ার্ক কনজেশন প্রতিরোধের একটি রূপ।

প্রেরকের একটি কনজেশন উইন্ডো (CWND) এবং প্রাপকের একটি রিসিভার উইন্ডো (RWND) রয়েছে। যদি ডেটা কনজেশন/রিসিভার উইন্ডোর চেয়ে বড় হয়, তাহলে যথাক্রমে একটি বাফার কম/ওভাররান হবে।
এটি প্রতিরোধ করার জন্য, প্রেরক একটি ছোট কনজেশন উইন্ডো (CWND =1) সহ একটি ডেটা প্যাকেট পাঠানোর মাধ্যমে শুরু করবেন, ধীরে ধীরে রিসিভার উইন্ডোটির জন্য রিসিভারকে তদন্ত করতে৷
প্রাপক একটি স্বীকৃতির সাথে প্রতিক্রিয়া জানাবে, প্রেরককে প্রতিবার ডেটা প্যাকেট দ্বিগুণ করতে অনুরোধ করবে যতক্ষণ না কোনও স্বীকৃতি না পাওয়া যায়। এই মুহুর্তে, ডেটা প্যাকেটের সর্বোত্তম সংখ্যা আবিষ্কৃত হয়েছে, যা অন্যান্য যানজট নিয়ন্ত্রণ অ্যালগরিদমগুলিকে এই গতিতে সংযোগ রাখতে দেয়৷
একসাথে কাজ করা
তাই, TCP স্লো স্টার্ট সংযোগ বন্ধ করার আগে পাঠানোর জন্য সর্বোত্তম ডেটা প্যাকেটের সংখ্যা বের করতে সক্ষম। এটি বাফার ওভাররানের ঝুঁকি ছাড়াই হোস্ট থেকে ক্লায়েন্টের কাছে পাঠানো ডেটার পরিমাণ অপ্টিমাইজ করার অনুমতি দেবে (ডেটা প্রাপ্তির চেয়ে দ্রুত পাঠানো হয়)।
অন্যান্য HTTP বৈশিষ্ট্যগুলি
HTTP পাইপলাইনিং

HTTP/1.1 সংস্করণের এই বৈশিষ্ট্যটি প্রতিক্রিয়ার অপেক্ষা না করে একই সকেটে একাধিক অনুরোধ পাঠানোর অনুমতি দেয়। যাইহোক, এটি HTTP/2 এর নতুন সংস্করণে TCP মাল্টিপ্লেক্সিং দ্বারা প্রতিস্থাপিত হয়েছে।
মূল পার্থক্য হল যদিও উভয়ই একই সকেটে একাধিক অনুরোধের জন্য অনুমতি দেয়, পাইপলাইনিং এখনও ক্রমানুসারে প্রতিক্রিয়া পাঠানোর প্রয়োজন হবে। এর মানে হল যে যদি অনুরোধ করা আইটেমগুলি ক্রমানুসারে থাকে (A, B, C), ক্লায়েন্ট আইটেম C পাবে না যদি আইটেম B সঠিকভাবে বিতরণ না করা হয়।
মাল্টিপ্লেক্সিং-এ, অর্ডার কোন ব্যাপার না। এটি দ্রুত ডেলিভারির সময়কে অনুমতি দেবে৷
এই পদ্ধতিগুলি ইমপোটেন্ট পদ্ধতির জন্য সবচেয়ে ভাল ব্যবহার করা হয়, যেগুলি এমন পদ্ধতি যা অনুরোধ করা সংখ্যার থেকে স্বাধীনভাবে সাড়া দেয় — উদাহরণস্বরূপ, একটি ওয়েব পৃষ্ঠা একাধিকবার অনুরোধ করা একই ওয়েব পৃষ্ঠায় সাড়া দেবে৷
সমান্তরাল সংযোগগুলি
কখনও একটি ওয়েবপেজ খুলেছেন এবং ওয়েবপৃষ্ঠার একাধিক উপাদান (ভিডিও বার, থাম্বনেল, বোতাম) একই সাথে লোড হতে দেখেছেন?
_এক সাথে একাধিক উপাদান লোড হচ্ছে | ফটো সৌজন্যে [ক্লাউডফ্লেয়ার মোবাইল SDK](https://www.cloudflare.com/products/mobile-sdk/" rel="noopener" target="blank" title=")
এটি সমান্তরাল সংযোগগুলির মাধ্যমে সম্ভব হয়েছে, যেখানে একই সময়ে একাধিক TCP সংযোগ স্থাপন করা হয়েছে, এই উপাদানগুলিকে একের পর একের পরিবর্তে একযোগে লোড করার অনুমতি দেয়৷
যাইহোক, যদিও এটি দ্রুত লোড হতে পারে বলে মনে হতে পারে, এটি ক্লায়েন্টের সীমিত ব্যান্ডউইথ দ্বারা আটকে থাকতে পারে। যদি সমস্ত সমান্তরাল সংযোগ সীমিত ব্যান্ডউইথের জন্য প্রতিদ্বন্দ্বিতা করে, তবে প্রতিটি উপাদান আনুপাতিকভাবে ধীর গতিতে লোড হবে, যার ফলে মোট লোডিং গতিতে শূন্য সুবিধা হবে৷
উপসংহার
OSI মডেলের সাহায্যে, আমরা সহজেই নেটওয়ার্কের বড় ছবি বুঝতে পারি, এবং কিভাবে তারা হার্ডওয়্যার থেকে সফ্টওয়্যার পর্যন্ত একে অপরের সাথে যোগাযোগ করে।
সাধারণভাবে, এটি একটি দুর্দান্ত শিক্ষার সরঞ্জাম এবং সেইসাথে সমস্যা সমাধানের জন্য একটি রেফারেন্স। মডেলটি ডিজাইনের জন্যও উপযোগী, কারণ এটি প্রতিটি স্তরের ফাংশনগুলি তদন্ত করে, একজনকে স্তরে স্তরে ডিজাইনের স্তর নিয়ে চিন্তা করতে বাধ্য করে৷
আমি এখন পর্যন্ত যা দিয়েছি তা হল OSI 5-লেয়ার মডেল, যেখানে OSI 7-লেয়ার মডেল রয়েছে যা সনাক্তকরণ, প্রমাণীকরণ এবং ডেটা এনক্রিপশন নিয়েও কাজ করে৷
এটি HTTP পরিচিতি সিরিজের পার্ট 2। আপনি পার্ট 1-এ DNS সার্ভারের গুরুত্ব সম্পর্কে প্রথম নিবন্ধটি পড়তে পারেন। আসুন পরবর্তী অংশ 3-এ HTTP অনুরোধের কাঠামোটি অন্বেষণ করি!
হাই! আমি চের ডন, বর্তমানে ডেটা সায়েন্সে মেজর পড়ছি। আমি প্যারালিগাল বটের CTO, এবং আপনি নীচে আমার ওয়েবসাইট খুঁজে পেতে পারেন। পড়ার জন্য ধন্যবাদ!
প্রকাশিত;
_গুণমান বিষয়বস্তু ধারণাগুলি উপলব্ধি করা কঠিন হওয়ার জন্য আমরা সেরা সামগ্রী অফার করি। আমরা সেখানে ছিলাম, এবং অনুভব করেছি আপনি যা করেন…_www.piqued.co
বিনামূল্যে কোড শিখুন. freeCodeCamp-এর ওপেন সোর্স পাঠ্যক্রম 40,000-এরও বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন