ডেটা-ভারী রিয়েলটাইম গেমসের জন্য ইউডিপিটি কি এখনও টিসিপির চেয়ে ভাল?


71

আমি জানি যে ইউডিপি সাধারণত উচ্চ ডেটা ব্যবহারের সাথে রিয়েল-টাইম মাল্টিপ্লেয়ার গেমগুলির জন্য প্রস্তাবিত হয়।

বেশিরভাগ নিবন্ধগুলি সার্ভাল বছরগুলি পুরানো, এবং যেহেতু ইন্টারনেটে প্রেরিত সমস্ত ডেটার 80% ডলার টিসিপি হয়, তাই টিসিপির জন্য অনেকগুলি অপ্টিমাইজেশন অবশ্যই করা উচিত।

এটি আমাকে অবাক করে তোলে: গতি এবং বিলম্বের ক্ষেত্রে ইউডিপি কি এখনও উচ্চতর? সাম্প্রতিক টিসিপি অপ্টিমাইজেশানগুলি কি টিডিপিকে ইউডিপির চেয়ে আরও ভাল পারফর্ম করতে পারে?


25
ইউডিপি সহ আপনার প্যাকেটগুলি প্রাপ্ত বা এমনকি অর্ডার দেওয়ার কোনও গ্যারান্টি নেই, এটিই একা টিডিপির চেয়ে ইউডিপিকে দ্রুততর করে তোলে।
নাথান

4
@ কেয়ারজেড- দ্রুত প্রয়োগের অর্থ কী?
নাথান

2
@ নাথান যে ইউডিপির চেয়ে টিসিপি দিয়ে আপনার অ্যাপ্লিকেশন বিকাশ করা সহজ। আমি আরও জানতে চাই যে সমস্ত টিসিপি অপ্টিমাইজেশান পারফরম্যান্সের ক্ষেত্রে টিসিপিকে একটি ভাল বিকল্প হিসাবে তৈরি করেছে।
KaareZ

3
@ কেয়ারজেড আমি কোনও বিশেষজ্ঞ নই তবে আসুন এটি সম্পর্কে ভাবা যাক। পারফরম্যান্সের ক্ষেত্রে টিসিপি কীভাবে আরও ভাল হতে পারে এবং এখনও একটি নির্ভরযোগ্য প্রোটোকল হতে পারে? আপনার সব কিছু থাকতে পারে না। টিসিপি নির্ভরযোগ্যতার জন্য তৈরি। আসল প্রশ্নটি হল আপনি কেন আপনার খেলায় টিসিপি ব্যবহার করতে চান?
নাথান

7
ইউডিপি টিসিপি এর চেয়ে ভাল তবে এবং যদি আপনি (= অভিজ্ঞ নিম্ন-স্তরের নেটওয়ার্কিং প্রোগ্রামার) সক্ষম হন তবে কেবলমাত্র টিসিপি বৈশিষ্ট্যগুলি কার্যকরভাবে কার্যকর করতে হবে। পারফরম্যান্সের জন্য অপ্রয়োজনীয় টিসিপি বৈশিষ্ট্যগুলি বাদ দেওয়া।
আজরা

উত্তর:


119

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

টিসিপি একটি বিমূর্ততা তৈরি করে যাতে সমস্ত নেটওয়ার্কের প্যাকেটগুলি উপস্থিত হয় এবং তারা যেভাবে প্রেরণ করা হয়েছিল সেগুলি তারা পৌঁছে দেয়। ক্ষতিকারক চ্যানেলে এ জাতীয় বিমূর্তি প্রয়োগ করতে, এটি অবশ্যই পুনরুদ্ধার এবং সময়সীমা বাস্তবায়ন করতে পারে, যা সময় নেয়। আপনি যদি টিসিপিতে 2 টি আপডেট প্রেরণ করেন এবং প্রথম আপডেটের একটি প্যাকেট হারিয়ে যায় তবে আপনি দ্বিতীয় আপডেটটি দেখতে পাবেন না:

  1. প্রথম আপডেটের ক্ষতি সনাক্ত করা হয়।
  2. প্রথম আপডেটের একটি পুনঃপ্রেরণের অনুরোধ করা হয়েছে।
  3. পুনঃস্থাপন এসে গেছে এবং প্রক্রিয়াজাত করা হয়েছে।

এটি টিসিপিতে কত দ্রুত করা হয় তাতে কিছু যায় আসে না, কারণ ইউডিপি দিয়ে আপনি কেবলমাত্র প্রথম আপডেটটি বাতিল করে দিন এবং দ্বিতীয়টি এখনই ব্যবহার করুন। টিসিপির বিপরীতে, ইউডিপি গ্যারান্টি দেয় না যে সমস্ত প্যাকেট আসবে এবং গ্যারান্টি দেয় না যে তারা যথাযথভাবে পৌঁছেছে।

এর জন্য আপনাকে সঠিক ধরণের ডেটা প্রেরণ করা এবং আপনার যোগাযোগকে এমনভাবে ডিজাইন করা দরকার যাতে ডেটা হারাতে পারা গ্রহণযোগ্য।

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

সম্পাদনা - কিছু মন্তব্য অন্তর্ভুক্ত / সম্বোধন করতে কিছু অতিরিক্ত তথ্য যুক্ত করা:

সাধারণত, ইথারনেটে প্যাকেট ক্ষতির হার খুব কম, তবে ওয়াইফাই যুক্ত হওয়ার পরে বা ব্যবহারকারীর আপলোড / ডাউনলোড চলমান থাকলে এটি অনেক বেশি হয়ে যায়। আসুন ধরে নেওয়া যাক আমাদের 0.01% (এক উপায়, রাউন্ড-ট্রিপ নয়) এর পুরোপুরি ইউনিফর্ম প্যাকেটের ক্ষতি রয়েছে। প্রথম ব্যক্তি শ্যুটারে, যখনই কিছু ঘটে তখন ক্লায়েন্টদের আপডেট পাঠানো উচিত, যেমন মাউস কার্সার যখন প্লেয়ারটিকে ঘুরিয়ে দেয়, যা প্রতি সেকেন্ডে প্রায় 20 বার ঘটে। তারা ফ্রেম প্রতি বা একটি নির্দিষ্ট বিরতিতে আপডেটগুলি প্রেরণ করতে পারে, যা প্রতি সেকেন্ডে 60-120 আপডেট হবে। যেহেতু এই আপডেটগুলি বিভিন্ন সময়ে প্রেরণ করা হয়, সেগুলি প্রতি আপডেটে একটি প্যাকেটে প্রেরণ করা উচিত। একটি 16 খেলোয়াড়ের খেলায়, সমস্ত 16 খেলোয়াড় এই 20-120 প্যাকেটগুলি প্রতি সেকেন্ডে সার্ভারে প্রেরণ করে, যার ফলে প্রতি সেকেন্ডে মোট 320-1920 প্যাকেট আসে। আমাদের প্যাকেট লোকসানের হার 0.01% সহ, আমরা প্রতি 5.2-31.25 সেকেন্ডে একটি প্যাকেট হারাতে আশা করি।

হারিয়ে যাওয়া প্যাকেটের পরে আমরা প্রাপ্ত প্রতিটি প্যাকেটে আমরা একটি ডুপ্যাক পাঠাব এবং তৃতীয় ডুপ্যাকের পরে প্রেরক হারিয়ে যাওয়া প্যাকেটটি পুনরায় পাঠাবে । সুতরাং, টিসিপির পুনঃপ্রেরণ শুরু করার সময়টি 3 প্যাকেট, প্লাস্টারে প্রেরকের কাছে পৌঁছতে শেষ ডুপ্যাকের জন্য সময় লাগে। তারপরে আমাদের পুনঃপ্রেরণের জন্য অপেক্ষা করতে হবে, সুতরাং আমরা মোট 3 টি প্যাকেট + 1 রাউন্ডট্রিপ ল্যাটেন্সি অপেক্ষা করি। রাউন্ডট্রিপ ল্যাটেন্সিটি সাধারণত স্থানীয় নেটওয়ার্কে 0-1 এমএস এবং ইন্টারনেটে 50-200 এমএস হয়। 3 সেকেন্ডে 120 প্যাকেট প্রেরণ করা হয় এবং 3 সেকেন্ডে 20 প্যাকেট প্রেরণ করা হলে 150 মিমিগুলিতে 3 প্যাকেটগুলি সাধারণত 25 এমএসে আসে।

বিপরীতে, ইউডিপি এর সাথে আমরা পরবর্তী প্যাকেটটি পাওয়ার সাথে সাথে হারিয়ে যাওয়া প্যাকেটটি থেকে পুনরুদ্ধার করি, সুতরাং প্রতি সেকেন্ডে 120 প্যাকেট প্রেরণ করলে আমরা 8.3 এমএস এবং প্রতি সেকেন্ডে 20 প্যাকেট প্রেরণ করলে 50 এমএস হারাব।

বিভিন্ন TCP জিনিষ Messier পেতে বিশেষজ্ঞদের সঙ্গে যদি আমরা বিবেচনা করতে হবে Nagle (বিকাশকারীর কোয়ালেসিং পাঠান বন্ধ করতে ভুলে যায়, অথবা বিলম্বিত সেটি হল ACK অক্ষম করতে পারেনা ), নেটওয়ার্ক কনজেশন পরিহার , অথবা যদি প্যাকেটের ক্ষয়ক্ষতি যথেষ্ট খারাপ আমরা একাধিক হিসাব আছে প্যাকেটের ক্ষতি (হারানো অ্যাক এবং ডুপঅ্যাক সহ) ইউডিপি দিয়ে আমরা সহজেই দ্রুত কোডটি লিখতে পারি কারণ আমরা খুব সহজেই টিসিপির মতো একটি ভাল নেটওয়ার্ক নাগরিক হওয়ার বিষয়ে চিন্তা করি না।


দ্রষ্টব্য: ইউডিপি স্থানীয় নেটওয়ার্ক সম্প্রচার করতে পারে (সম্ভাব্য সুবিধা), এবং যেহেতু ভিস্টাকে অ্যাডমিনের প্রয়োজন ইউডিপিতে (অসুবিধে) সার্ভার / সম্প্রচার চালানো (ইউএসি / ফায়ারওয়াল ব্যবহারকারীদের ক্রিয়াকলাপটি জানাতে ব্যর্থ হয়)।
PTwr

7
"আপনি যদি টিসিপিতে 2 টি আপডেট প্রেরণ করেন এবং প্রথম আপডেটের একটি প্যাকেট হারিয়ে যায়" সত্য, তবে এর সম্ভাবনা কী আছে ? পিংম্যানের মতে : "সময়ের মধ্যে 2% এর বেশি প্যাকেটের ক্ষতি হ'ল সমস্যার একটি শক্তিশালী সূচক is"
মুচাহো

30
@ পিটার আপনি ভুলে যাচ্ছেন যে টিসিপিতে প্রতিটি বাদ পড়া প্যাকেট প্রতিটি পরবর্তী প্যাকেট স্টল করে । 100 মিমি পিং সহ এটি প্যাকেটটি পুনঃপ্রেরণ এবং গ্রহণের আগে সহজেই 300-500 মিমি হতে পারে, সুতরাং 33-10-10 প্যাকেটগুলি প্রতি 33 সেকেন্ডে স্থবির হয়ে যায়। এটি ভূমিকম্পের মতো এফপিএসে অবশ্যই লক্ষণীয় হবে ।
ব্লুরাজা - ড্যানি পিফ্লুঘুফ্ট

12
অনেক টিসিপি বাস্তবায়নে, মিস অ্যাকের পরে প্রথম সময়সীমা পুরো দ্বিতীয় গ্রহণ করবে। এটা অনেক দিন। প্যাকেটগুলি যদি ছোট থাকে তবে ইউডিপি সহজেই একটি মিসড ট্রান্সমিশন বা দু'টি সহজেই সহজে পারা যায় প্রতিটি প্যাকেটটিতে শেষ দুটি আপডেটের ডেটা অন্তর্ভুক্ত করে তাই প্রেরক বা রিসিভারটি জানতে পারে যে প্রথম প্যাকেটটি অনুপস্থিত হওয়ার আগে অ্যাপ্লিকেশনটির প্রয়োজনীয় ডেটা পাবে।
সুপারক্যাট

23
ভূমিকম্পের মতো একটি গেমের সাথে, প্রথম প্যাকেট হারানো অপ্রাসঙ্গিক। ইন দূরে সময় কম এটা আপনি নিতে ক্ষতি সনাক্ত করা এবং প্রথম প্যাকেট পুনরায় প্রেরণ করতে হবে, আপনার ইতিমধ্যেই একটি দ্বিতীয় প্যাকেট যা প্রথম এক অপ্রচলিত যাহাই হউক না কেন তোলে প্রেরিত উচিৎ ছিল। অনেক রিয়েল-টাইম ভয়েস এবং ভিডিও অ্যাপ্লিকেশনগুলিও ইউডিপি ব্যবহার করার চেয়ে একই কারণ। যদি কোনও প্যাকেট বাদ পড়ে যায় তবে পুরো স্ট্রিমটি পুরো দ্বিতীয় বা তার বেশি দেরি না করে আপনি কেবল 0.02 সেকেন্ডের অডিও হারাবেন। একই সময়ে রিয়েল-টাইম গেমগুলির ক্ষেত্রেও সত্য, কারণ আপনি জানতে চান যে কোনও বস্তু এখন কোথায় রয়েছে , 1.5 সেকেন্ড আগে নয়।
21

19

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

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

  • অন্যদিকে, ইউডিপি হ'ল একটি প্রোটোকল যা ব্যবহারকারী নিয়ন্ত্রণের দিকে লক্ষ্য করে। আমাদের ডেটাগ্রামগুলি প্রেরণের জন্য ইউডিপি ব্যবহার করার সময় , আমরা নিশ্চিত হতে পারি না যে ডেটাগ্রাম কখনই গন্তব্যে পৌঁছেছে কিনা এবং (এবং আমরা এখানে গাণিতিক নিশ্চিততা বোঝাতে চাইছি: আমরা যখন কোনও প্যাকেট প্রেরণ করি তখন সম্ভবত এটি উপস্থিত হয়, তবে আমরা নিশ্চিত হতে পারি না) 100%)। এছাড়াও, যখন কোনও প্যাকেটটি হারিয়ে যায় তখন এটি সনাক্ত করা যায় না বা আবার প্রেরণ করা হয় না।

এই মুহুর্তে, টিসিপি আমাদের সমস্ত সমস্যার আদর্শ সমাধানের মতো দেখবে। এটি নির্ভরযোগ্য, এটি দ্রুত, কী প্যাকেটগুলি এসেছে এবং আমাদের এখনও কোন প্যাকেটগুলি প্রেরণ করতে হবে তা পর্যবেক্ষণ করে এটি আমাদের জন্য সংযোগের বিলম্বিকে সমাধান করে।

কিন্তু , এর বাইরেও দেখুন। ইউডিপি আমাদের একমাত্র সুবিধা দেয় তা হ'ল তার গতি, এবং এটিই সত্য যা আমরা সত্যই চাই। একটি ইউডিপি প্যাকেটটি কোনও বিশেষ নিয়ন্ত্রণ ছাড়াই স্রেফ তৈরি করা হয়, সংশোধন করা হয় এবং প্রেরণ করা হয়, কারণ ইউডিপি প্রোটোকল এভাবেই কাজ করে। একটি TCP প্যাকেট, crafted হবে লেবেল, sumchecked, এবং যখন এটা আসে একটি হল ACK ফেরত পাঠানো হয় প্রেরক বলতে ", প্যাকেট এক্স এখানে বর্তা" , এবং যখন এই সংকেত তারপর পাঠানো হয় মানে যে এই ধরনের প্যাকেট এক্স পাঠানো হবে আবার।

আমি জানি যে ইউডিপি সাধারণত উচ্চ ডেটা ব্যবহারের সাথে রিয়েল-টাইম মাল্টিপ্লেয়ার গেমগুলির জন্য প্রস্তাবিত হয়।

হ্যাঁ, তবে কেবল নয়। ইউডিপি মূলত টিসিপির চেয়ে বেশি পছন্দ করা হয় কারণ এটির উচ্চ গতি উচ্চ ডেটা প্রেরণ এবং পরিচালনা পরিচালনা করার ধারণা। যখন এই ধরণের ভিডিওগেমটি ডিটারমিনিস্টিক লকস্টেপে চালিত হয় তা ধরে নিয়ে (সার্ভারে যা ঘটে তা কোনও নেটওয়ার্কের বিলম্বিতভাবে স্বতন্ত্রভাবে কোনও ক্লায়েন্টের উপর প্রতিলিপি করা হয়), একটি আপডেট প্যাকেট হারিয়ে যায় এবং কখনই তার গন্তব্যে পৌঁছায় না। টিসিপি এই জাতীয় প্যাকেট পুনরায় পাঠাবে, এবং নিম্নলিখিত প্যাকেটগুলি বাদ পড়ে কারণ সঠিকভাবে না আসে এবং হারিয়ে যাওয়ার পরে পুনরায় প্রেরণ করা হয়। ইউডিপি এই পরিস্থিতিতে অনেক বেশি সহনশীল: এটি এই প্যাকেটটির বিষয়ে চিন্তা করবে না, কারণ আরও নতুন আপডেট আসছে updates হারিয়ে যাওয়া আপডেটটি রেন্ডার করা হয় না, পরিবর্তে গেম পদার্থবিজ্ঞানের ব্যবহৃত ইন্টিগ্রেশন পদ্ধতি এবং সর্বশেষ আপডেট প্রাপ্তির উপর ইন্টারপোল্ট করা হয় ।

বিলম্বতা যথেষ্ট বেশি হলে টিসিপি বিড়বিড় করে তোলে, ইউডিপি তা করে না:

<video style="min-width: 100% height: auto" autoplay="" preload="auto" loop="true"><source src="https://gafferongames.com/videos/deterministic_lockstep_tcp_250ms_5pc.mp4" type="video/mp4"><source src="http://173.255.195.190/cubes_deterministic_lockstep_tcp_250ms_5pc.webm" type="video/webm">Your browser does not support the video tag.</video>

এটি আমাকে অবাক করে তোলে যে গতি এবং বিলম্বের ক্ষেত্রে ইউডিপি এখনও উচ্চতর।

ঠিক আছে, হ্যাঁ, এটি রয়েছে এবং এটি দীর্ঘ সময়ের জন্য থাকবে । টিসিপি বনাম ইউডিপি সম্পর্কে আপনি এখানে আরও পড়তে পারেন ।


8
টিসিপি ডেটাগ্রামের চেয়ে বাইটের স্ট্রিম ব্যবহার করে। ইউডিপি ডেটাগ্রাম ব্যবহার করে। ভাল টিসিপি বাস্তবায়ন সেই প্যাকেটগুলি অর্ডার থেকে সরিয়ে রাখবে, তবে পূর্ববর্তী সমস্ত প্যাকেট না পাওয়া পর্যন্ত বা কোনও প্যাকেটের সামগ্রী অ্যাপ্লিকেশনটিতে উপলব্ধ করা যাবে না। সুতরাং, যদি একটি প্যাকেট হারিয়ে যায় তবে প্রেরকের হারিয়ে যাওয়া প্যাকেটটি অনুসরণ করা সমস্ত কিছু পুনঃপ্রেরণ করার প্রয়োজন হতে পারে না, তবে সেই প্যাকেটটি পুনরায় স্থানান্তরিত না হওয়া পর্যন্ত প্রাপ্ত অ্যাপ্লিকেশনটি হারিয়ে যাওয়া প্যাকেটের অতীতের কিছু দেখতে পাবে না (ততক্ষণে অ্যাপ্লিকেশনটি তাত্ক্ষণিকভাবে তার সামগ্রীগুলি দেখতে পাবে) প্যাকেট এবং এটির পরে)।
সুপারক্যাট

@ সুপের্যাট দুর্ভাগ্যক্রমে, টিসিপির কাছে প্রেরককে ঠিক কোন প্যাকেটগুলি দিয়েছিল এবং কী গ্রহণ করেনি তা বলার কোনও উপায় নেই। এটির জন্য কেবলমাত্র "এক্স সিকোয়েন্স সংখ্যার মাধ্যমে আমি সমস্ত বাইটগুলি পেয়েছি for" এর একটি ব্যবস্থা আছে has যদি প্রেরক ইতিমধ্যে প্রাপ্ত প্যাকেটগুলি পুনরায় স্থানান্তর করে তবে এটি কেবল অনুলিপিগুলি উপেক্ষা করবে।
রিরাব

@ রীরাব: আমি ভেবেছিলাম কিছু আধুনিক এক্সটেনশন রয়েছে যা এতে বৈশিষ্ট্যটি অন্তর্ভুক্ত করেছে, যদিও আমি মনে করি যে এমন একটি বাস্তবায়ন যা ১,০৫০,০০০ বাইট পর্যন্ত একটি ডেটা প্রেরণ করেছে তবে কেবলমাত্র ১,০০,০০০ অবধি ডেটার জন্য অ্যাকস পেয়েছিল, শুনেই এক সেকেন্ড পরে ১,০০,০০০ এর অতীতের যে কোনও কিছুর জন্য এসিএস, এক হাজার থেকে ১,০০,০০০ বা তার বেশি ডেটা পাঠিয়ে শুরু করুন এবং তারপরে প্রতিক্রিয়াটির জন্য অপেক্ষা করুন। এটি যদি 1000,500 অবধি ডেটার জন্য অ্যাক্স পায় তবে এটি আরও ডেটা পুনঃপ্রেরণ করতে পারে; যদি এটি 1,050,000 অবধি ডেটার জন্য অ্যাক্স পায় তবে এটি পুনঃস্থাপনগুলি এড়িয়ে যেতে পারে।
সুপারক্যাট

1
@ জর্জিও আইপি এনালগ সংকেত সম্পর্কে যা কিছু নির্দিষ্ট করে না। এটি শারীরিক স্তরে সম্পন্ন হয়েছে। আইপি নেটওয়ার্ক স্তরে তার উপরে দুটি স্তর পরিচালনা করে। বিটগুলি ফাইবার, উপগ্রহ লিঙ্ক, বা একটি 14.4 কেবিপিএস ডায়াল-আপ মডেমের চেয়ে বেশি চলছে কিনা আইপি কম যত্ন করতে পারেনি। ইউডিপি এবং টিসিপি হ'ল আইপি থেকে পরিবহন স্তরে একটি স্তর। এছাড়াও, সুপারক্যাট যেমন বলেছেন, টিসিপি অ্যাপ্লিকেশনটিতে একটি স্ট্রিম ইন্টারফেস উপস্থাপন করে, ইউডিপির মতো কোনও ডেটাগ্রাম ইন্টারফেস নয়।
21

@ সুপের্যাট হুম ... আপনি আধুনিক এক্সটেনশানগুলি সম্পর্কে সঠিক হতে পারেন, যদিও এটি অবশ্যই মূল টিসিপি স্ট্যান্ডার্ডের অংশ না। একটি ACK এর সিক্যুয়েন্স নম্বর রয়েছে has আমি ধরে নিচ্ছি একটি টিসিপি বাস্তবায়ন প্রতিটি প্যাকেটের জন্য পুরো আরটিটি অপেক্ষা করার পরিবর্তে কোনও প্যাকেট বাদ পড়লে সাধারণত পুরো প্রেরণ উইন্ডোটি পুনঃপ্রেরণ শুরু করবে। যদি খুব সামান্য লাভের জন্য বেশ কয়েকটি টানা প্যাকেট হারিয়ে যায় তবে এটি প্রচুর পরিমাণে বিলম্বিত করবে।
রিরাব

9

টিসিপি <- সংক্রমণ নিয়ন্ত্রণ প্রোটোকল। এটি ট্রান্সমিশন নিয়ন্ত্রণের জন্য তৈরি ।

টিসিপি একটি ভাল এবং কূটনৈতিক নেটওয়ার্ক নাগরিক হওয়ার জন্য তৈরি হয়েছিল। এটি সবার জন্য নেটওয়ার্কিংকে একটি ভাল অভিজ্ঞতা তৈরি করার দিকে মনোনিবেশ করে এবং স্বেচ্ছায় এটি অর্জনের মাধ্যমে থ্রুপুট হ্রাস পায়। এটি বিলম্বিতা যুক্ত করে পরিবেশের সাথে সামঞ্জস্য হয় । কারণগুলি উদাহরণস্বরূপ:

  • প্রাপক একটি অনুপস্থিত প্যাকেট সনাক্ত করে, প্রেরককে ধীর হতে বলে (কিছুক্ষণের জন্য হার অর্ধেক করে রাখুন)।
  • রিসিভার ভুল আগত প্যাকেট ক্রম সনাক্ত করে (সম্ভবত তারা বিভিন্ন নেটওয়ার্কের পাথ নিয়েছিল), প্রেরককে ধীর হতে বলে - এবং বিটিডব্লিউ, নিখোঁজটি না আসা পর্যন্ত রিসিভারটি আরও প্যাকেট গ্রহণ করবে না with এটি মোকাবেলা করতে সময় লাগে।
  • প্রেরক নেটওয়ার্ক কনজেশন সনাক্ত করে (উদাঃ স্লো রাউন্ডট্রিপ সময়), বিলম্বিত করে।
  • রিসিভার গতিটি ধরে রাখতে পারে না (ইনপুট বাফারটি খুব বেশি পূর্ণ হয়ে উঠছে), প্রেরককে বিলম্বিতা (প্রবাহ নিয়ন্ত্রণ) যুক্ত করতে বলে।
  • গ্রাহকদের মধ্যে একক ধীর গতিতে প্রাপ্ত রিসিভার (উচ্চ পিং জাস্টার্ড, ক্রিবিবি, তারা কী বলা হয়) রয়েছে, পরিবারে বিলম্ব (বিলম্ব) হতে পারে।

উপরন্তু

  • নাগলের অ্যালগরিদম প্রেরকদের ডেটা ধরে রাখতে পারে, যতক্ষণ না পাঠানোর মতো আরও কিছু থাকে (ডেটা ফ্রেমের আরও দক্ষতার সাথে ব্যবহার করার জন্য)। সময় সমালোচনামূলক ডেটা দেরি হয়ে যায়।
  • আমি বিশ্বাস করি যে ওলানের সাথে সাধারণ হোম-রাউটারগুলি একাধিক ক্লায়েন্টের মধ্যে টিসিপি থ্রুটপুটটি মসৃণ করতে স্মার্ট জিনিসগুলি (ধীরগতিতে) করতে পারে (গেমটি এটি ব্যবহার না করলেও, ওয়ালান ইন্টারফেসটি বাধা সৃষ্টি করে)। সম্প্রচার / মাল্টিকাস্টিং সম্পর্কিত, যেমন। "অন্যান্য" ডেটা আপনার টিসিপি থ্রুপুট হ্রাস করতে পারে।
  • টিসিপি এসি সবকিছু জানায় , যা গেমিংয়ের পরিবেশের জন্য প্রয়োজনীয় নয়। প্রতিটি একক পদার্থবিজ্ঞানের আপডেট এসিিং করার কোনও মানে নেই। প্রতি সেকেন্ডে একবারে বা তেমনিভাবে উদাহরণস্বরূপ আক্কেলজেন্সে যথেষ্ট। যদি কোনও ক্লায়েন্ট (বা কোনও সার্ভার) দীর্ঘ সময়ের জন্য নিরব থাকে, তবে প্রতিক্রিয়া জানার সময় এসেছে।

এগুলি সত্ত্বেও, টিসিপি (সামগ্রিকভাবে সংক্রমণিত ডেটা) / (সামগ্রিকভাবে গ্রাসিত সময়) এর জন্য সর্বোচ্চ চিত্র সরবরাহ করে । আপনি যখন এটি চান তা ঠিক তখনই ঘটে না।

ইউডিপি এর কিছুই করে না। এটি আপনার ইচ্ছার উপরে আগুন জ্বলছে, কেবল যে এটি প্রতিবার আঘাত হানা আশা করতে পারে না - লক্ষ্যটি সন্নিবেশ করে অবশ্যই ঘোষণা করতে হবে যে "আপনি দীর্ঘ সময় গুলি করেন নি, কেন?"। এখনও কেউ নিজস্ব কাস্টম ACK প্যাকেট তৈরি করতে পারে, একক প্যাকেটে একাধিক রেকর্ড রাখতে পারে ইত্যাদি And ইউডিপি হ'ল কম বিলম্বিত চাহিদা সহ গেমসের জন্য সবচেয়ে উপযুক্ত।


1
দ্রষ্টব্য: নাগলের অ্যালগরিদম অক্ষম করা যেতে পারে যেমন লিনাক্সের জন্য
মুচাহো

নাগলে বিপরীতে কাজ করতে পারে (এবং অ্যাপ্লিকেশন দ্বারা প্রতিটি প্যাকেটকে "ধাক্কা" দিয়ে সেট করতে পারে) ততক্ষণে বিলম্ব আক টিসিপিগুলির পক্ষে কাজ করে, প্রেরক উইন্ডোটি পূর্ণ না হওয়া পর্যন্ত প্রেরককে তারে আরও বাইট লাগাতে দেয় (আদর্শ হিসাবে বড় হিসাবে যেমন রিসিভ বাফার অন্যদিকে রয়েছে) নির্বিশেষে কোনও অ্যাস্ক দেখা গেছে কিনা।
জেফ মেডেন

4
এটি ট্রান্সমিশন কন্ট্রোল প্রোটোকল।
ysdx

1
এই শব্দগুলি একটি মিলিয়ন বার টাইপ করুন ... থেক্স - স্থির।
স্টর্মউইন্ড

3

আপনি আরএফসি 768 (ইউডিপি) এর প্রথম চিত্রটি আরএফসিপি 793 (টিসিপি) পৃষ্ঠা 15 এর প্রথম চিত্রের সাথে তুলনা করতে পারেন ।

উভয়ই "উত্স বন্দর" এর জন্য 16 টি বিট পরে একটি "গন্তব্য পোর্ট" এর জন্য 16 বিট প্রদর্শন করে। উভয়ই একটি "চেকসাম" এর জন্য 16 বিট দেখায়। আরএফসি 768 অনুসারে, ইউডিপির "চেকসাম পদ্ধতি টিসিপিতে ব্যবহৃত একই রকম।"

যেখানে ইউডিপির দৈর্ঘ্য ইউডিপির ডায়াগ্রামের বিশদটি গুটিয়ে রাখে, টিসিপির দৈর্ঘ্য 15 এবং 16 পৃষ্ঠায় বর্ণিত "একটি 96 বিট সিউডো শিরোনাম" এর একটি অংশ।

টিসিপি ইউডিপিকে ছাড়িয়ে যাওয়ার আশা করবেন না। এটি কেবল একাধিক কারণে সম্ভবত হওয়ার সম্ভাবনা নেই। একটি হ'ল টিসিপিতে আরও বিট থাকে। সুতরাং যদি সরঞ্জামগুলি কার্যকরভাবে প্রতি সেকেন্ডে নির্দিষ্ট সংখ্যক বিট প্রক্রিয়াজাত করতে পারে তবে এটি টিসিপি প্যাকেটের চেয়ে বেশি ইউডিপি প্যাকেটের অনুমতি দেবে।

অন্য কারণটি হ'ল টিসিপির "থ্রি ওয়ে হ্যান্ডশেক" এর অর্থ প্রেরকের অবশ্যই প্রতিক্রিয়ার জন্য অপেক্ষা করতে হবে। এই প্রয়োজনীয়তা অতিরিক্ত ওভারহেড পরিচয় করিয়ে দেয় যা ইউডিপি হ্যান্ডেল করে না। আপনার বেশিরভাগ ইন্টারনেট যোগাযোগ কিছু ইউডিপি যোগাযোগের সাথে শুরু হওয়ার কারণ রয়েছে। বেসিক ডিএনএস ইউডিপি ব্যবহার করে কারণ একটি অনুরোধ এবং প্রতিক্রিয়া টিসিপির "থ্রি ওয়ে হ্যান্ডশেক" প্রক্রিয়াটির চেয়ে কম পদক্ষেপে সম্পন্ন করা যেতে পারে। টিসিপি'র হারিয়ে যাওয়া প্যাকেটের খোঁজ রাখার বৈশিষ্ট্যটি বরং বর্ণনাহীন, কারণ কোনও কম্পিউটার একটি রিমোট সিস্টেমকে জানার চেষ্টা না করে কেবল একটি অপূর্ণ পূর্বে অনুরোধ রয়েছে তার পরিবর্তে কেবল একটি নতুন অনুরোধ জানাতে পারে।


যদিও ইংরাজির সংক্ষিপ্তসারগুলি (অন্য কয়েকটি উত্তরে যেমন দেখা যায়) দুর্দান্ত তবে কেবল কিছু সঠিক ও সুনির্দিষ্ট বিবরণ দেওয়া সহজ হতে পারে।
তোগাম

আপনার মানে 16 বিট, বাইট নয়!
jcaron

ওহ, আমাকে বোকা। 'প্রযুক্তিগতভাবে সুনির্দিষ্ট উত্তরগুলি দুর্দান্ত কেন তা উদাহরণ; এগুলি ত্রুটি সনাক্ত করা এবং সঠিক তথ্য দেখতে সহজ। আমি উত্তর ঠিক করেছিলাম। ধন্যবাদ @ জ্যাকারন
টুগাম

2

এক মুহুর্তের জন্য কী ঘটছে তা বিবেচনা করুন। পরিস্থিতি সরল করার জন্য, রাষ্ট্রীয় পরিবর্তন প্রেরণের চেষ্টা করার সময় আপনার কাছে দুটি পছন্দ থাকে (যেমন আপনার প্লেয়ার সবেমাত্র দিক পরিবর্তন করেছে, বা একটি বন্দুক গুলি করেছে বা অন্য কোনও খেলোয়াড় কেবল বোমা ফাটিয়েছে):

  1. টিসিপি অধিবেশন উন্মুক্ত রাখুন এবং বোমাটি সরে গেলে সমস্ত খেলোয়াড়কে একটি টিসিপি বার্তা প্রেরণ করুন (সম্ভব হলে নীচে দেখুন)
  2. একটি ইউডিপি বন্দর শোনার জন্য রাখুন, এবং বোমাটি বন্ধ হয়ে গেলে সমস্ত খেলোয়াড়কে তাদের সংযোগের অবস্থা বিবেচনা না করে একটি ইউডিপি বার্তা প্রেরণ করুন

ধরে নিই এর ঠিক আগে কোনও আপডেটের দরকার ছিল না, সেই সময়টি যখন একক আপডেটটি 1 বনাম 2 এ আসে তখন খুব আলাদা হবে না। এটি সার্ভার থেকে ক্লায়েন্টের কাছে একটি ট্রিপ। তবে, বলুন যে কেবল বোমাটি বন্ধ হওয়ার পরিবর্তে, আপনি ক্রমাগত গোলকধাঁধা দিয়ে চলমান কারও ক্রিয়াকলাপকে রিলে করার চেষ্টা করছেন; বুনন, হাঁস, শুটিং ইত্যাদি ইউডিপির ক্ষেত্রে, প্রতিটি ক্রিয়া ডেটাগ্রামে প্রেরণ করা হবে, এটি হওয়ার সাথে সাথে। টিসিপির ক্ষেত্রে প্রতিটি ক্রিয়া কেবলমাত্র প্যাকেটে প্রেরণ করা হবে কেবলমাত্র সার্ভারটি প্রেরণের অনুমতি দিলে। এটি কী প্রেরণ অনুমোদিত? টিসিপি উইন্ডোতে রুম থাকা (দেরী হওয়া এসি সক্রিয় করে ধরে নেওয়া) যাতে বার্তাটি তারে লাগানো যায়। যদি তা না হয় তবে প্রেরণের আগে ক্লায়েন্টের কাছ থেকে কোনও এস্কি আসার অপেক্ষা করতে হবে।

কতক্ষণ অত্যন্ত দীর্ঘ? যখন মাল্টিপ্লেয়ার প্রথম ব্যক্তি শ্যুটার বিকাশটি 90 এর দশকের শেষের দিকে এবং 2000 এর দশকের শুরুর দিকে কম ল্যাটেন্সি সংযোগগুলি সাধারণ ছিল না তখন এটি ধীরে ধীরে ফিরে আসে। একটি ডায়ালআপ মডেমের 180 মিলিমিটারের একতরফা দীর্ঘায়িত বৈশিষ্ট্য থাকবে। আরেকটি আপডেট প্রেরণের আগে এক এসকের জন্য অপেক্ষা করা, সেই সময়টিকে কার্যকরভাবে দ্বিগুণ করে 360 মিমি করা বেদনাদায়ক ছিল; এমনকি নবজাতক ব্যবহারকারীরা অবশ্যই এই পার্থক্যটি অনুভব করতে পারেন। ব্রডব্যান্ড সংযোগগুলি যখন ধরা পড়ে, তারা বেশিরভাগ বিলম্বকে এনে দেয় তবে ব্যান্ডউইথ যখন কম সরবরাহে থাকে (তখন প্রায়শই কিছু অঞ্চলে) তখনও তা বজায় থাকে। সুতরাং সর্বনিম্ন সম্ভাব্য বিলম্বের পক্ষে অগ্রাধিকার বজায় ছিল।

আধুনিক বাড়ির সংযোগ এবং আন্তঃসংযোগগুলি এটিকে পরিবর্তিত করেছে, যেখানে আঞ্চলিক বিলম্বিতা এমনকি দিনের জঞ্জাল সময়েও 15 মিমি বা তার নিচে সীমার মধ্যে রয়েছে। ইউটিপির পরিবর্তে টিসিপি নির্বাচন করা বেশিরভাগ ক্ষেত্রে অদৃশ্য হবে, যেহেতু বিলম্বিতা "যথেষ্ট কম"। তবে, এখনও টিসিপি তার ইতিহাসকে কম বিলম্বিত প্রোটোকল হিসাবে অগ্রাধিকার দেওয়ার প্রবণতা এখনও রয়েছে। সুতরাং, আপাতত (এবং সম্ভবত ভবিষ্যতের কিছু সময়ের জন্য) ইউডিপি রিয়েল-টাইম যোগাযোগের জন্য অগ্রাধিকার পাবে।


বিলম্বিতা যথেষ্ট পরিমাণে কম হবে, ডিফল্টরূপে ব্যতীত, টিসিপি রাইটগুলি কেবল তখনই প্রেরণ করা হয় যখন ডেটা-টু-রাইটিং নির্দিষ্ট ট্র্রেসোল্ড বা সময়সীমা (সাধারণত 200-1000 মিমি) অতিক্রম করে। আপনার যদি সামান্য থ্রুপুট সহ স্বল্প-ল্যাটেন্সি সিস্টেমে টিসিপি দরকার হয় তবে আপনাকে অবশ্যই এই বৈশিষ্ট্যটি অক্ষম করতে হবে এবং নিশ্চিত করতে হবে যে আপনি সমস্ত সময় স্বতন্ত্র বাইটগুলি না লিখেছেন (যেমন আপনি আর টিসিপি স্ট্রিমটিকে স্ট্রিম হিসাবে ব্যবহার করছেন না এবং আপনি ভান করছেন পরিবর্তে পৃথক বার্তাগুলির সাথে ডিল করছেন)। আপনার বাফারগুলি পূর্ণ না হওয়া পর্যন্ত আপনাকে এসকে-র জন্য অপেক্ষা করতে হবে না, যা সাধারণত রিয়েল-টাইম গেমটিতে হওয়ার সম্ভাবনা খুব কম।
লুয়ান

1
@ লুয়ান প্রবেশ করুন: টিসিপি পিএসএইচ পতাকা। যখন কোনও অ্যাপ্লিকেশন এটিকে স্ট্যাকের নিচে ফেলে দেয় তখন আরও তথ্যের জন্য অপেক্ষা না করে প্যাকেটটি তাত্ক্ষণিকভাবে প্রেরণ করা হয়। প্রচুর অ্যাপ্লিকেশন এটি সফলভাবে ব্যবহার করে (উদাহরণস্বরূপ টেলনেট এবং এসএসএস)।
জেফ মেডেন

2

আমি জানি যে ইউডিপি সাধারণত উচ্চ ডেটা ব্যবহারের সাথে রিয়েল-টাইম মাল্টিপ্লেয়ার গেমগুলির জন্য সুপারিশ করা
হয় ইউডিপি কি গতি এবং বিলম্বের ক্ষেত্রে আরও উন্নত? সাম্প্রতিক টিসিপি অপ্টিমাইজেশানগুলি কি টিডিপিকে ইউডিপির চেয়ে আরও ভাল পারফর্ম করতে পারে?

আপনার অনুমানগুলি ভুল। টিসিপি এবং ইউডিপি মূলত তারা কোন মডেলটি উপস্থাপন করে (অবিশ্বাস্য ডেটাগ্রাম বনাম ক্রম নির্ভরযোগ্য ভার্চুয়াল স্ট্রিম) এর মধ্যে পৃথক।

তারা ভলিউম ("উচ্চ ডেটা ব্যবহার") বা থ্রুপুট ক্ষেত্রে আলাদা হয় না। টিসিপি ইউডিপি-র যতটা ডেটা সরিয়ে দেবে, এটি সহজেই শারীরিক কেবলটি পরিপূর্ণ করবে।

প্যাকেট ক্ষতির উপস্থিতিতে, দু'জনে বিলম্বের মধ্যে পৃথক হয়, তবে কেবল সেই অবস্থায়। অন্যথায়, টিসিপিতে ইউডিপির মতোই কম বিলম্ব রয়েছে (নেটওয়ার্ক স্ট্যাকটি করার জন্য কিছুটা যুক্তিযুক্ত থাকতে পারে, তবে এটি অবহেলাযোগ্য) কারণ কয়েক ডজন ন্যানোসেকেন্ড দিতে বা নিতে পারেন।
শিরোনামের আকারে কিছুটা পার্থক্য রয়েছে, তাই প্রযুক্তিগতভাবে, আরও বাইটগুলি অবশ্যই সিরিয়াল লাইনে তারের উপর দিয়ে তৈরি করতে হবে, তবে এটি একটি বরং অপ্রয়োজনীয়। এটি কেবলমাত্র বাল্ক স্থানান্তরের জন্যই গুরুত্বপূর্ণ এবং তারপরে এটি প্রায় 0.5% পার্থক্য। বাড়ির ডিএসএল ইন্টারনেট অ্যাক্সেস সহ বেশিরভাগ লোকেরা এটিএম-এর মাধ্যমে তাদের সমস্ত ট্র্যাফিক রুট করে যা 10% প্রোটোকল ওভারহেডের (উপরে পেইডের 48 বাইটের জন্য 5 কন্ট্রোল বাইট, আংশিক ফ্রেমের) যোগ করে, এবং কেউ খেয়ালও করে না।

কিছু লোক ইউডিপির শীর্ষে নির্ভরযোগ্যতা তৈরি করে। যদি কিছু স্তরের নির্ভরযোগ্যতা কাঙ্ক্ষিত হয় তবে কঠোরভাবে অর্ডার সরবরাহের প্রয়োজন হয় না, এটি একটি সামান্য সুবিধা দিতে পারে । যাইহোক, এটি পদ্ধতিটি অনেক অর্থবোধ করে কিনা তা এখনও বিতর্কযোগ্য এবং আপনি এই ছোট্ট সুবিধার জন্য আপনি একটি বিশাল মূল্য প্রদান করেন।
আপনার যদি ক্লায়েন্টরা হোটেল ওয়াইফিস বা অন্যান্য "অদ্ভুত" স্থানগুলি থেকে সংযোগ স্থাপন করে থাকেন তবে আপনি খেয়াল করবেন যে প্রায়শই টিসিপি-র সামগ্রিক সমর্থন ইউডিপির চেয়ে অনেক বেশি।

গেমস সাধারণত ইউডিপি ব্যবহার করে না কারণ এটি পূর্বনির্ধারিত উপায়ে একের চেয়ে সেরা - এটি হয় না - বা আপনি অর্ডার ছাড়াই নির্ভরযোগ্যতা প্রয়োগ করে আধা মিলি সেকেন্ডে জিটারটি হ্রাস করতে পারেন তবে গেমস (আইপি টেলিফোনের মতোই) প্রায়শই খুব অস্থির ডেটা থাকে যেমন উদাহরণস্বরূপ অবস্থান আপডেট।
এই অস্থির ডেটা নিয়মিতভাবে এবং দ্রুত সময়ের সাথে সাথে উভয়ই অচল করে দেওয়া হয় এবং পরবর্তী ডেটাগ্রাম আগমন করে Which যার অর্থ আপনি আসলে ১০০% নির্ভরযোগ্য (বা ক্রম) হওয়ার বিষয়ে খুব বেশি চিন্তা করেন না এর চেয়ে বেশি কিছুই নয়।

ধরে নেওয়া একটি নেটওয়ার্ক প্যাকেটটি এমন একটি পরিষেবাতে ফেলে দেওয়া হয়েছে যা ঘন ঘন আপডেটগুলি আসার সাথে অবিচ্ছিন্ন গতিতে চলে runs পুনরায় প্যাকেট আসার অপেক্ষায় অপর প্রান্তে সবকিছু হিম করে ফেলুন। এই উপায় খুব বিরক্তিকর, এবং ভাল না।

পরিবর্তে, আপনি কেবল প্যাকেটটি হারিয়েছেন তা বিবেচনা করুন এবং পরবর্তী প্যাকেটটি দিয়ে এটি তৈরি করে এবং আপনার সামর্থ্যের সর্বোত্তম দিকে এই ডেটা নিয়ে যান, কোনও প্যাকেট ব্যবহারকারীর কাছ থেকে হারিয়ে গেছে তা লুকিয়ে রাখুন। ইন্টারপোলেশন, মৃত গণনা, আপনি এটি নাম দিন।

প্যাকেটের ক্ষতি হ'ল একটি স্বাভাবিক অবস্থা condition আইপি সাধারণত "বেশ নির্ভরযোগ্য" হলেও প্যাকেটগুলি মাঝেমধ্যে বাদ দেওয়া হতে পারে, এবং ঘটবে । প্যাকেটগুলি হারিয়ে যাওয়ার সময় সাধারণত বিরল দিকে (<1% এখানে) থাকলেও এটি অসাধারণ বা তাত্ত্বিক কিছু নয় বা কোনও কিছু ভেঙে যাওয়ার ইঙ্গিত দেয়। এটি পুরোপুরি স্বাভাবিক।
প্রতিটি টিসিপি বাল্ক স্থানান্তর অগত্যা হারিয়ে যাওয়া প্যাকেট অন্তর্ভুক্ত করবে , উদাহরণস্বরূপ (কনজেশন নিয়ন্ত্রণ কীভাবে এটি কাজ করে)।


2

একটি উচ্চ ব্যান্ডউইথ এমপিজিতে, আপনি যদি কোনও প্যাকেট মিস করেন যে আপনাকে দৈত্য # 425 এর অবস্থান এবং স্বাস্থ্য দেয়, তবে আপনি কিছুক্ষণ পরোয়া করবেন না, কারণ আপনি এক সেকেন্ডের কিছু অংশে অন্য আপডেট পেয়ে যাবেন। এটি এবং উদাহরণ যেখানে ইউডিপি আপনাকে তাত্ক্ষণিকভাবে অপ্রচলিত ডেটার জন্য অপেক্ষা করার জন্য টিসিপিকে বোকা দেখায়।

একই খেলায়, আপনি প্যাচগুলি ঠিক যেমনটি নকশা করা হয়েছিল তেমন দেখাতে চান। টিসিপিতে ইতিমধ্যে নির্মিত হয়েছে "যদি এটি ব্যর্থ হয় তবে আমাকে বলুন" বৈশিষ্ট্যগুলি রয়েছে, স্বয়ংক্রিয় পুনরায় চেষ্টা এবং যাচাই করা ব্যর্থতার সুবিধার্থে। আপনি এটি ইউডিপিতে করতে পারেন, তবে কেন প্রযুক্তিটি পুনরায় তৈরি করবেন?

এখানে কী চলছে তার একটি সাধারণ বিবরণ এখানে।

ইউডিপি - বিচ্ছিন্ন অংশ ওডাটা।
একটি প্যাকেট তৈরি করুন।
আইপিতে এনকেপসুলেট করুন।
এটা শিপ।

টিসিপি - একটি স্ট্রিম ওডাটা আলাদা করুন।
স্ট্রিমের সামনের অংশ থেকে একটি প্যাকেট তৈরি করুন।
আইপিতে এনকেপসুলেট করুন।
টিসিপি উইন্ডোতে জায়গার জন্য অপেক্ষা করুন।
এটা শিপ।
কোনও প্রাপ্তি প্রাপ্ত বা সময়সীমা শেষ না হওয়া পর্যন্ত পুনরায় চালনা চালিয়ে যান।
প্রাপ্তি প্রাপ্ত বা সময়সীমা শেষ না হওয়া পর্যন্ত টিসিপি উইন্ডোতে থাকুন।

শিপিংয়ের অর্থ কেবল এটি স্থানীয় এনআইসির মাধ্যমে তৈরি হয়েছে, আর নেই no

একটি টিসিপি রসিদ অভ্যর্থনা উভয়ই তথ্য অভ্যর্থনার গ্যারান্টি দেয় এবং পরবর্তী প্যাকেটের জন্য উইন্ডোতে স্থান মুক্ত করে fre

পুনরায় বিক্রয় (সামান্য) চূড়ান্ত প্রাপ্তির সম্ভাবনা বৃদ্ধি করে।

টিসিপি প্যাকেটগুলি তথ্যের আদেশের স্ট্রিম হিসাবে অন্যদিকে পুনরায় সংযুক্ত করা হয়। ইউপিডি প্যাকেটগুলি স্বতন্ত্র প্যাকেট হিসাবে প্রাপ্ত হয়। প্রোটোকল অর্ডার সংরক্ষণ করে না।

টিসিপি প্রয়োজনীয় ডেটা এবং বৃহত অর্ডার করা পরিমাণে ডেটা পুশ করার জন্য ভাল। টিসিপি অবিচ্ছিন্ন ব্যর্থতার বিজ্ঞপ্তি সরবরাহ করে। টিসিপি চেপেড পাইপগুলির মাধ্যমে স্ব-থ্রোটল (রেফার: উইন্ডো)। টিসিপির হাতে আনাগোনা শুরু করার জন্য হ্যান্ডশেক রয়েছে। সঞ্চারের আগে টিসিপির একটি "সংযোগ" দরকার।

ইউডিপি কেবলমাত্র তারে ডেটা রাখে এবং আপনাকে উইন্ডোজ এবং পুনঃস্থাপনের জন্য অপেক্ষা না করে এগিয়ে যেতে দেয়। ইউডিপি পুরো গতিতে ডেটাটিকে একটি দম বন্ধ পাইপ হিসাবে বিস্ফোরিত করবে, যতই ডেটা হারাবে না।

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

পিএস (আমি মন্তব্যে জবাব দেওয়ার জন্য মন্তব্য যুক্ত করতে পারি না) ইউডিপি ডেটাগুলির জন্যও ভাল যা প্রয়োজনীয় তবে প্রয়োজনীয় নয়। ফরোয়ার্ড ত্রুটি সংশোধন এর একটি উদাহরণ, প্রচুর অপ্রয়োজনীয় তবে পছন্দসই প্যাকেট।


3
"অপ্রচলিত" ডেটা সম্পর্কে আপনার পয়েন্টটি একটি ভাল। টিসিপি "কখনও না থেকে বেশি দেরী" ডেটার পক্ষে ভাল, তবে ইউডিপি ডেটার জন্য ভাল যা এটি দ্রুত গন্তব্যে পৌঁছালে কার্যকর হবে, তবে তা না হলে অকেজো।
সুপারক্যাট

1

সমস্ত টিসিপি অপ্টিমাইজড রাউটারগুলি কি টিডিপিকে ইউডিপির চেয়ে আরও ভাল পারফরম্যান্স করেছে?

আরও একটি প্রশ্ন হ'ল "ডেটা ভারী" এর অর্থ কি আপনি প্রায়শই দৃশ্যগুলি লোড করবেন?

যদি হ্যাঁ, আপনাকে নিবিড়ভাবে ডেটা টুকরো (> 1 কে) প্রেরণের দরকার হতে পারে যাতে টিসিপি আরও কার্যকর হতে পারে কারণ বিশেষত সার্ভারের দিকে এনআইসিগুলি বিভিন্ন অফলোড দেয় যা একই চক্রটি বহন করে। কোনও ইউপি স্পেস অ্যাপ্লিকেশন টিসিপি-র সাথে বৃহত্তর লেখাগুলি জারি করতে পারে যখন ইউডিপি-তে এমটিইউ-হেডারের আকারের বেশি বাইট প্রেরণের প্রচেষ্টা আইপি খণ্ডন এবং অন্যান্য ওভারহেডের ফলে পারফরম্যান্সকে মেরে ফেলবে


এটি একটি "ভক্সেল" গেম, সুতরাং হ্যাঁ, এর জন্য প্রচুর দৃশ্যের ডেটা প্রেরণ করা প্রয়োজন।
KaareZ

@ কেয়ারজেড ওয়েল, আপনি সম্ভবত নিজের নিজের পুনঃপ্রেরণ প্রক্রিয়া দ্বারা সে ক্ষেত্রে স্বতন্ত্র স্বতন্ত্র বার্তা হিসাবে প্রেরণ করতে চান। মিনক্রাফ্ট টিসিপিতে শুরু হয়েছিল, এবং ইন্টারনেটে বেশ অপ্রয়োজনীয় ছিল; ইউডিপিতে স্যুইচ করা বেশিরভাগ মানুষের জন্য একটি আনন্দের উপলক্ষ। মূল ধারণাটি হ'ল আপনি যখন 20 অংশ ভক্সেল ডেটা প্রেরণ করেন এবং প্রথমটি "হারিয়ে যায়" তখন আপনি অন্য 19 টি অংশটিকে ডেটা পাওয়ার সাথে সাথে দেখাতে বাধা দেওয়া উচিত নয়; যখন আপনি দেখতে পান যে প্রথমটি অনুপস্থিত, আপনি পুনঃপ্রেরণ করেন। টিসিপিতে, এই 19 টির সমস্তই খুব কম সময়েই স্থবির হয়ে পড়েছে এবং নিকৃষ্টতম পরিস্থিতিতে পুনঃপ্রেরণ করেছে।
লুয়ান

2
@ লুয়ান মিনক্রাফ্ট আসল গেমপ্লেটির জন্য ইউডিপিতে স্যুইচ করেনি। এমনকি সর্বশেষতম সংস্করণগুলি এখনও টিসিপি ব্যবহার করে। কোনও খুশির উপলক্ষ নেই ... :(
ইউএনডি

1

ইউডিপি বা টিসিপি (বা অন্য কোনও বৈকল্পিক) উভয়ই ডান-ডান উচ্চতর নয়, এমনকি গতি / বিলম্বের ক্ষেত্রেও নয়। আপনার পছন্দটি অবশ্যই আপনার আবেদনের প্রয়োজনীয়তার উপর নির্ভর করে করা উচিত। এটি করার জন্য, আপনার প্রতিটি প্রোটোকল অফার করা বৈশিষ্ট্যগুলি তুলনা করা উচিত, বুঝতে পেরে যে আরও বৈশিষ্ট্যগুলি আরও ওভারহেড বোঝায়। সুতরাং, যদি লক্ষ্যটি হ'ল বিলম্বতা হ্রাস করা বা গতি সর্বাধিক করা, তবে আপনার যথাসম্ভব কয়েকটি বৈশিষ্ট্য সহ একটি প্রোটোকল নির্বাচন করা উচিত তবে আপনার প্রয়োজনীয়তাগুলি পূরণ করার জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলি বজায় রেখে।

প্রোটোকলগুলির একটি তুলনা

সাধারণভাবে বলতে গেলে, ইউডিপি (ব্যবহারকারী ডেটাগ্রাম প্রোটোকল) বৈশিষ্ট্যগুলির সর্বনিম্ন পরিমাণ সরবরাহ করে। আপনি কোনও প্রকার রসিদ / স্বীকৃতি ছাড়াই ডেটা প্রেরণ করা সহজ is

অন্যদিকে, টিসিপি (ট্রান্সমিশন কন্ট্রোল প্রোটোকল) একটি নির্ভরযোগ্য, সংযুক্ত যোগাযোগের জন্য প্রয়োজনীয় সর্বাধিক পরিমাণ বৈশিষ্ট্য সরবরাহ করে। একটি টিসিপি যোগাযোগ নকল বা আরও অনেকগুলি প্যাকেট প্রেরণ করে এবং আদেশের তথ্যের সাথে ট্যাগ করে। গন্তব্যে পৌঁছানোর পরে, কোন এসকে (স্বীকৃতি) অবশ্যই প্যাকেটগুলি হারিয়েছিল সেই তথ্যের সাথে অবশ্যই প্রেরণ করতে হবে যাতে আসল প্রেরকরা সেই হারানো প্যাকেটগুলি আবার পাঠাতে পারেন। আমি যদি সঠিকভাবে স্মরণ করি তবে এসিকে প্যাকেটগুলিরও যথাযথ নির্ভরযোগ্যতার জন্য স্বীকৃতি প্রয়োজন হতে পারে।


উদাহরণ: স্কাইপ কনফারেন্স কল

স্কাইপ কনফারেন্স কলের জন্য, সমস্ত ভিডিও এবং অডিও ডেটা নির্ভরযোগ্য ফ্যাশনে প্রেরণ / গৃহীত হয়েছে তা নিশ্চিত করা গুরুত্বহীন। আজকাল, ইউডিপি যাইহোক প্যাকেটের ক্ষতি হ্রাস করতে একটি দুর্দান্ত কাজ করে। জেনে রাখা গুরুত্বপূর্ণ বিষয় হ'ল ইউডিপিতে ট্রান্সমিশন সফল হয়েছিল কি না তা একেবারে কোনও গ্যারান্টি নেই। কনফারেন্স কলে অডিও / ভিডিও ডেটার জন্য, ইউডিপি হ'ল উপযুক্ত পছন্দ কারণ আমরা রিয়েল-টাইম ডেটা (যা অতি সাম্প্রতিকতম) পাওয়ার বিষয়ে আমাদের বেশি যত্নশীল। যদি এখানে এবং সেখানে কয়েকটি প্যাকেট হারিয়ে যায় তবে এটি নাটকীয় উপায়ে যোগাযোগকে বাধাগ্রস্ত করবে না।

যাইহোক, একটি সম্মেলন কলে, লোকেরা আইএম এর (তাত্ক্ষণিক বার্তা) পাঠাতে বা ফাইলগুলি প্রেরণ করতে পারে। এই ক্ষেত্রে, ফাইল এবং বার্তাগুলি ক্ষতিগ্রস্ত বা ক্ষতিগ্রস্ত না হয়েছে তা নিশ্চিত করার জন্য নির্ভরযোগ্যতা একটি প্রয়োজনীয় প্রয়োজনীয়তা। আইএম এর জন্য আপনার সংযুক্ত রাষ্ট্রের দরকার পড়বে না যা টিসিপি সরবরাহ করে। কোনও মধ্যস্থতাকারী প্রোটোকল যেমন RUDP (নির্ভরযোগ্য ইউডিপি) যথেষ্ট হতে পারে। তবে, ফাইলগুলির জন্য, টিসিপি সরবরাহ করে এমন সংযুক্ত অবস্থা থাকা দরকার।


বাস্তবায়ন পছন্দসমূহ

আপনার যদি কোনও জটিল অ্যাপ্লিকেশন থাকে বা আপনার যোগাযোগকে অনুকূলকরণের প্রয়োজন হয়, তবে ইউডিপি যোগাযোগের সাথে শুরু করা উপকারী। এরপরে, আপনি উপরে প্রয়োজনীয় সমস্ত বৈশিষ্ট্য যুক্ত করতে পারেন। এটি আপনাকে আপনার নেটওয়ার্ক যোগাযোগের উপর সর্বাধিক নিয়ন্ত্রণ প্রদান করবে।

আপনার যদি এমন একটি সহজ অ্যাপ্লিকেশন থাকে যেখানে অপ্টিমাইজেশনের প্রয়োজন হয় না, তবে আপনার চাহিদা পূরণের জন্য কোনও একটি মান (ইউডিপি বা টিসিপি) নিয়ে যাওয়ার কথা বিবেচনা করুন। এটি আপনাকে আরও গুরুত্বপূর্ণ বিষয়ে এগিয়ে যাওয়ার অনুমতি দেবে।


1

আমি অনেক মন্তব্য লক্ষ্য করেছি যেখানে লোকেরা বিশ্বাস করে যে টিসিপি প্যাকেটগুলি ইউডিপি প্যাকেটের চেয়ে বড়। শুধু আমাকে বিশ্বাস করবেন না, ডকুমেন্টেশন পড়ুন। প্রোটোকলটি নিম্নরূপ: ইথারনেট শিরোলেখের জন্য কয়েকটি বাইট (2 বাইট মেসেজের ধরণ, 48 বিট ম্যাক, 6 বাইট) (ওয়াইফাইয়ের জন্য, শিরোনাম পৃথক হতে পারে) টিসিপি বা আইডিপি এক্স বাইটের জন্য আইপি 20 বাইটের 20 বাইট 0 থেকে প্রায় 1500 পর্যন্ত (এমটিইউ দেখুন) শেষ পর্যন্ত, চেকসামটি নিশ্চিত করে নিন যে সেই ইথারনেট প্যাকেটে কোনও দুর্নীতি না ঘটে।

টিসিপি প্রায় 64 কে-র বড় "স্ট্রিম" প্যাকেটটি প্রেরণের অনুমতি দেয়। এই "বৃহত" ব্লকটি আসলে অনেকগুলি ছোট ইথারনেট প্যাকেটে কাটা হয়।


আপনি কি ইউডিপি এবং টিসিপি শিরোনাম একই আকারের প্রস্তাব দেওয়ার চেষ্টা করছেন?
ক্যামেরন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.