UIP (software)
ইউআইপি হল টিসিপি/আইপি নেটওয়ার্ক প্রোটোকল স্ট্যাকের একটি ওপেন সোর্স বাস্তবায়ন যা ক্ষুদ্র 8-এবং 16-বিট মাইক্রোকন্ট্রোলারগুলির সাথে ব্যবহারের উদ্দেশ্যে করা হয়েছে। এটি প্রাথমিকভাবে সুইডিশ ইনস্টিটিউট অফ কম্পিউটার সায়েন্সের নেটওয়ার্কড এমবেডেড সিস্টেমস গ্রুপের অ্যাডাম ডানকেলস দ্বারা তৈরি করা হয়েছিল, একটি বিএসডি স্টাইল লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত এবং ডেভেলপারদের একটি বিস্তৃত গোষ্ঠী দ্বারা আরও উন্নত করা হয়েছিল। ইউআইপি এমবেডেড সিস্টেমে খুব কার্যকর হতে পারে কারণ এর জন্য খুব কম পরিমাণে কোড এবং র্যামের প্রয়োজন হয়। এটি ডিএসপি প্ল্যাটফর্ম সহ বেশ কয়েকটি প্ল্যাটফর্মে পোর্ট করা হয়েছে। 2008 সালের অক্টোবরে, সিসকো, অ্যাটমেল এবং এস. আই. সি. এস ইউ. আই. পি-তে একটি সম্পূর্ণ সঙ্গতিপূর্ণ আই. পি. ভি6 সম্প্রসারণ ঘোষণা করে, যা ইউ. আই. পি. ভি6 নামে পরিচিত। বাস্তবায়ন ইউ. আই. পি প্রয়োজনীয় সম্পদ হ্রাস করার জন্য অনেক অস্বাভাবিক নকশা পছন্দ করে। ইউ. আই. পি-এর নেটিভ সফ্টওয়্যার ইন্টারফেসটি কোনও অপারেটিং সিস্টেম ছাড়াই ছোট কম্পিউটার সিস্টেমের জন্য ডিজাইন করা হয়েছে। এটি একটি সময়োপযোগী লুপে কল করা যেতে পারে এবং কলটি সমস্ত পুনঃপ্রচেষ্টা এবং অন্যান্য নেটওয়ার্ক আচরণ পরিচালনা করে। ইউআইপি কল করার পরে হার্ডওয়্যার ড্রাইভারকে কল করা হয়। ইউ. আই. পি প্যাকেট তৈরি করে, এবং তারপর চালক এটি পাঠায়, এবং ঐচ্ছিকভাবে একটি প্রতিক্রিয়া পায়। আইপি প্রোটোকল স্ট্যাক সফ্টওয়্যারের জন্য বিভিন্ন আইপি প্যাকেটের অনেকগুলি অনুলিপি রাখা, সংক্রমণ, অভ্যর্থনা এবং যদি তাদের বিরক্তি করার প্রয়োজন হয় তবে অনুলিপি রাখা স্বাভাবিক। ইউআইপি মেমরি ব্যবহারে সাশ্রয়ী কারণ এটি শুধুমাত্র একটি প্যাকেট বাফার ব্যবহার করে। প্রথমত, এটি অর্ধ-দ্বৈত পদ্ধতিতে প্যাকেট বাফার ব্যবহার করে, এটি সংক্রমণ এবং অভ্যর্থনার জন্য ব্যবহার করে। এছাড়াও, যখন ইউ. আই. পি-কে একটি প্যাকেট পুনরায় প্রেরণ করতে হয়, তখন এটি অ্যাপ্লিকেশন কোডকে এমনভাবে কল করে যা পূর্ববর্তী তথ্য পুনরুত্পাদন করার জন্য অনুরোধ করে। আরেকটি অদ্ভুততা হল ইউ. আই. পি কীভাবে সংযোগ পরিচালনা করে। বেশিরভাগ আইপি বাস্তবায়নের প্রতি সংযোগে একটি কাজ থাকে এবং কাজটি সংযোগের অন্য প্রান্তে একটি দূরবর্তী কম্পিউটারে একটি কাজের সাথে যোগাযোগ করে। ইউ. আই. পি-তে কোনও মাল্টিটাস্কিং অপারেটিং সিস্টেম অনুমান করা হয় না। সংযোগগুলি একটি অ্যারেতে অনুষ্ঠিত হয়। প্রতিটি কলের সময়, ইউআইপি একটি সংযোগ পরিবেশন করার চেষ্টা করে, অ্যাপ্লিকেশন কোডে একটি সাবরুটিন কল করে যা প্রতিক্রিয়া জানায় বা তথ্য পাঠায়। সংযোগ অ্যারের আকার এমন একটি সংখ্যা যা ইউআইপি পুনরায় কম্পাইল করার সময় সামঞ্জস্য করা যেতে পারে। ইউআইপি টিসিপি, ইউডিপি এবং আইপি সংজ্ঞায়িত করে এমন আরএফসিগুলির সাথে সম্পূর্ণরূপে সঙ্গতিপূর্ণ। এটি বাধ্যতামূলক রক্ষণাবেক্ষণ প্রোটোকল আই. সি. এম. পি প্রয়োগ করে। সংস্করণ ইউআইপি 0.9 হল অপারেটিং সিস্টেমের উপর ন্যূনতম নির্ভরতা সহ সংস্করণ, ক্ষুদ্রতম সম্পদ ব্যবহার, এবং একমাত্র সংস্করণ যা একটি বিশুদ্ধ ইভেন্ট লুপ এপিআই উপস্থাপন করে, তবে এর মূল আকারে আইপি সংস্করণ 6 সমর্থন করে না, শুধুমাত্র পুরানো, আরও সাধারণ আইপিভি 4। এটি খুব কম পরিমাণে সম্পদ সহ এমবেডেড সিস্টেমে ব্যবহার করা যেতে পারে। এটি এইচটিটিপি (একটি সাধারণ ওয়েব সার্ভার), এসএমটিপি (সাধারণ মেল ট্রান্সমিশন প্রোটোকল), এফটিপি (ফাইল ট্রান্সফার প্রোটোকল), টেলনেট (টার্মিনাল এমুলেশন) এবং অন্যান্য সহ একটি ইভেন্ট লুপ সিস্টেমে চলা উচ্চ-স্তরের প্রোটোকলের উদাহরণগুলির একটি সেট সহ বিতরণ করা হয়েছিল। উদাহরণ এবং এর ছোট আকার সত্ত্বেও, ইউআইপি 0.9 প্রয়োগ করা কঠিন হতে পারে কারণ এটি কোনও ধরনের সকেট এপিআই ব্যবহার করে না। ইউআইপি সুপরিচিত দুর্বলতা সহ ব্যাপকভাবে ব্যবহৃত কোড। নকশাটি 32-বিট গাণিতিককে ন্যূনতম এবং পৃথক করে যাতে এটি 8 এবং 16-বিট সিপিইউগুলির জন্য সামঞ্জস্য বা অনুকূলিত করা যায়। এছাড়াও, 16-বিট সফ্টওয়্যার টাইমারগুলি (ছোট মাইক্রোকন্ট্রোলারগুলিতে সাধারণ) উপচে পড়তে পারে এবং ত্রুটিযুক্ত ক্রিয়াকলাপের কারণ হতে পারে। এটি একটি টাইমার সিস্টেমের মাধ্যমে ঠিক করা যেতে পারে যা অতিরিক্ত প্রবাহিত হয় না (যেমন। টাইমারগুলি গণনা করে বা মডুলার পাটিগণিত ব্যবহার করে)। আরেকটি সমস্যা হল যে এর একক প্যাকেট বাফারের যথেষ্ট থ্রুপুট সমস্যা থাকতে পারে কারণ একটি পিসি হোস্ট সাধারণত "এসিকে" প্যাকেটটি বিলম্বিত করে, আরও প্যাকেটের জন্য অপেক্ষা করে। ধীর, সিরিয়াল পোর্ট বাস্তবায়নে, প্রতিটি প্যাকেটকে দুটি অর্ধ-প্যাকেটের টুকরো হিসাবে পাঠানোর জন্য ইউআইপি সংশোধন করে অ্যাক-থ্রুপুট ঠিক করা যেতে পারে। দ্রুত ইথারনেট বা ওয়াইফাই সহ ইউআইপি সিস্টেমগুলি প্রতিটি প্যাকেট দু 'বার পাঠানোর জন্য হার্ডওয়্যার ড্রাইভারকে সংশোধন করতে পারে। কিছু পিসি স্থানীয় ইথারনেটে একটি দ্রুত ইউআইপি সিস্টেমে সঠিকভাবে সাড়া দেয় না, কারণ ইউআইপি সিস্টেমটি পিসি গ্রহণ করার জন্য প্রস্তুত হওয়ার আগেই একটি প্রতিক্রিয়াশীল প্যাকেট শুরু করতে পারে। সমাধান হল মূল লুপে ইউআইপি সিস্টেমে কম ঘন ঘন কল করা (উইন্ডোজ পিসিগুলি প্রায় 1 মিলিসেকেন্ডের প্রতিক্রিয়া সময়ের জন্য ডিজাইন করা হয়েছে)। ইউ. আই. পি-র সাধারণ বাস্তবায়নের একটি নির্দিষ্ট আই. পি ঠিকানা থাকে, যা তাদের বাস্তব নেটওয়ার্কে অবাস্তব করে তুলতে পারে, যদিও কেউ কেউ ডি. এইচ. সি. পি প্রয়োগ করেছে। ইউআইপিভি6-এর রেফারেন্স সংস্করণ সহ ইউআইপি-এর পরবর্তী সংস্করণগুলি কন্টিকির সাথে একীভূত করা হয়েছে, একটি অপারেটিং সিস্টেম যা সমবায় মাল্টিটাস্কিংয়ের জন্য করোটিন ব্যবহার করে। কনটিকি একটি সরলীকৃত সকেট এপিআই দ্বারা প্রয়োজনীয় মাল্টিটাস্কিং প্রদান করে, ইউআইপি ব্যবহারকে সহজতর করে। এই সংস্করণগুলি 0.9-এর তুলনায় কম জনপ্রিয় হতে পারে। এমবেডেড কোডের অনেক উদাহরণ তাদের ব্যবহার করে না। আরও দেখুন ইন্টারনেট ইঞ্জিনিয়ারিং টাস্ক ফোর্সের টিসিপি এবং ইউডিপি পোর্ট নম্বরের তালিকা এলডাব্লুআইপি-অন্য টিসিপি/আইপি স্ট্যাক প্রকল্প (এছাড়াও ডানকেলস দ্বারা তৈরি), তবে আরও সম্পূর্ণ বৈশিষ্ট্যযুক্ত এবং আরও সক্ষম হার্ডওয়্যার রেফারেন্সের লক্ষ্যে বাহ্যিক লিঙ্কগুলি ইউআইপি উত্স ইউআইপি পোর্ট এ. ভি. আর মাইক্রোকন্ট্রোলার ইউআইপি-ভিত্তিক ওয়েব সার্ভার ওপেনআরআইএসসি-এমবেডেড এস. সি এম্বেডেড সিস্টেম ব্যবহার করে বিএসডি লাইসেন্স ব্যবহার করে মুক্ত নেটওয়ার্ক-সম্পর্কিত সফ্টওয়্যার সফ্টওয়্যার