এমডিইউ কেমন হয় ইউডিপিতে 65535 তবে ইথারনেট ফ্রেমের আকার 1500 বাইটের বেশি মঞ্জুরি দেয় না


11

আমি 100 এমবিপিএস-এর একটি দ্রুত ইথারনেট ব্যবহার করছি, যার ফ্রেমের আকার 1500 বাইটের চেয়ে কম (আমার পাঠ্যপুস্তক অনুসারে পে-লোডের জন্য 1472 বাইট)। সেটিতে আমি 65507 বাইটের বার্তার আকারের একটি ইউডিপি প্যাকেটটি প্রেরণ এবং গ্রহণ করতে সক্ষম হয়েছি, যার অর্থ প্যাকেটের আকার 65507 + 20 (আইপি শিরোনাম) + 8 (ইউডিপি শিরোলেখ) = 65535।

যদি ফ্রেমের পে-লোডের আকারটি নিজেই সর্বোচ্চ 1472 বাইট (আমার পাঠ্যপুস্তক অনুসারে) হয়, তবে এখানে আইপি এর প্যাকেটের আকার 65535 এর চেয়ে বেশি হতে পারে কি?

আমি প্রেরক কোড হিসাবে ব্যবহার

char buffer[100000];
for (int i = 1; i < 100000; i++)
{
    int len = send (socket_id, buffer, i);
    printf("%d\n", len);
}

হিসাবে রিসিভার কোড

while (len = recv (socket_id, buffer, 100000))
{
     printf("%d\n". len);
}

আমি লক্ষ করেন, send returns -1উপর i > 65507এবং recvকপি করে প্রিন্ট বা এক প্যাকেট গ্রহণ করে maximum of length 65507

উত্তর:


11

ইউডিপি ডেটাগ্রামগুলির এমটিইউ আকারের সাথে সামান্যই সামঞ্জস্য রয়েছে আপনি K৪ কে পর্যন্ত নিজের মতো করে এটিকে আরও বড় করে তুলতে পারবেন উপরে উল্লিখিত সর্বোচ্চটি। এমনকি আপনি তার মধ্যে একটি পুরো প্যাকেটে প্রেরণ করতে পারবেন যতক্ষণ না আপনি বড় আকারের বৃহত আকারের আকারের জাম্বো ফ্রেম ব্যবহার করছেন are

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

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

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


'আরও টুকরো পতাকা' সম্পর্কে ভাল তথ্য। এটি কি ইউডিপি শিরোনামে বা আইপি শিরোনামে একটি পতাকা?
জন যিশু

দ্রষ্টব্য: ডেটা খণ্ডিত হয়ে গেলে কিছু ওএস ইউডিপি সংক্রমণ করবে না। আইই লিনাক্স ডক,By default, Linux UDP does path MTU (Maximum Transmission Unit) discovery. This means the kernel will keep track of the MTU to a specific target IP address and return EMSGSIZE when a UDP packet write exceeds it.
রাহেলি

2

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


1

দেখা যাচ্ছে যে প্রয়োজন অনুসারে খণ্ডিত প্যাকেটে টিসিপি / আইপি স্ট্যাকের অনুমতি দেওয়া পৃথক প্যাকেটগুলি প্রেরণের চেয়ে অনেক কম ওভারহেড।


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

আমাদের মধ্যে ওএসআই মডেল যারা চ্যালেঞ্জপ্রাপ্ত, আপনি কি আপনার উত্তরের সাথে আরও কিছু বিশদ যুক্ত করতে পারেন?
রবার্ট হার্ভে

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

1

ইউডিপি এমটিইউ সম্পর্কে কিছু জানে না। ইউডিপি প্যাকেটে 8 থেকে 65535 বাইট পর্যন্ত কোনও আকার থাকতে পারে। ইউডিপির নীচে প্রোটোকল স্তরগুলি নির্দিষ্ট আকারের একটি প্যাকেট প্রেরণ করতে পারে বা খুব বড় হলে ত্রুটিযুক্ত সেই প্যাকেটটি প্রেরণ করতে অস্বীকার করবে।

ইউডিপির নীচের স্তরটি সাধারণত আইপি হয়, আইপিভি 4 বা আইপিভি 6 হয়। এবং আইপি প্যাকেটে 20 (আইপিভি 4) / 40 (আইপিভি 6) থেকে 65535 বাইট পর্যন্ত যে কোনও আকার থাকতে পারে, এটি ইউডিপির সমান সর্বোচ্চ। তবে আইপি ফ্র্যাগমেন্টেশন নামক একটি প্রক্রিয়া সমর্থন করে । নীচের স্তরটি যে পরিবহণ করতে পারে তার চেয়ে যদি কোনও আইপি প্যাকেট আকারে বৃহত্তর হয়, আইপি একক প্যাকেটকে একাধিক প্যাকেটে বিভক্ত করতে পারে টুকরা বলে। প্রতিটি খণ্ড প্রকৃতপক্ষে নিজস্ব আইপি প্যাকেট (নিজস্ব আইপি শিরোনাম রয়েছে) এবং এটি নিজেই গন্তব্যে প্রেরণ করা হয়; তারপরে পরবর্তী উচ্চ স্তরের প্রাপ্ত তথ্যের (যেমন ইউডিপি) পাস করার আগে সমস্ত টুকরোগুলি সংগ্রহ করা এবং সেগুলি থেকে সম্পূর্ণ প্যাকেটটি পুনরায় তৈরি করা গন্তব্যের কাজ is

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

খণ্ডন সাধারণত এড়ানো হয়, হিসাবে

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

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

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

সর্বদা পরিবহনযোগ্য হওয়ার জন্য আপনি নির্ভর করতে পারেন কেবলমাত্র ইউডিপি আকার হ'ল 576 বিয়োগ 8 বাইট ইউডিপি শিরোনাম এবং বিয়োগ 20 (ভি 4) / 40 (ভি 6) বাইটস আইপি শিরোনাম, কারণ আইপি স্ট্যান্ডার্ডটি প্রতিটি আইপি হোস্টের সাথে আইপি প্যাকেটগুলি গ্রহণ করতে সক্ষম হয় মোট আকার 576 বাইট। আপনার প্রোটোকল প্রয়োগটি যদি কমপক্ষে সেই আকারের প্যাকেটগুলি গ্রহণ না করতে পারে তবে এটি মানসম্পন্ন হবে না। নোট করুন, তবে, মানটি বিভাজন ছাড়াই 576 বলে না, সুতরাং একটি 576 বাইট আইপি প্যাকেট দুটি হোস্টের মধ্যে খণ্ডিত হতে পারে।

কেবলমাত্র প্যাকেটের আকার আপনি বিভাজন ছাড়াই পরিবহনযোগ্য হতে পারবেন আইপিভি 4 এবং 56 বাইট আইপিভি 6 এর জন্য 24 বাইট, কারণ একটি খণ্ডের জন্য সবচেয়ে ছোট আইপি শিরোনাম 20/48 বাইট (v4 / v6) এবং একটি খণ্ডে কমপক্ষে 4/8 থাকতে হবে বাইটস (v4 / v6) পেইলড ডেটা। সুতরাং আইপি স্তরের নীচে এমন একটি পরিবহন ব্যবস্থা যা অন্তত এই আকারগুলির প্যাকেটগুলি পরিবহন করতে পারে না, আইপি ট্র্যাফিক পরিবহনে ব্যবহার করা যায় না।

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


0

আপনার প্রশ্নের উত্তরের জন্য, "যদি ফ্রেমের পেওলোডের আকারটি নিজেই সর্বোচ্চ 1472 বাইট (আমার পাঠ্যপুস্তক অনুসারে) হয়, তবে এখানে আইপি এর প্যাকেটের আকার 65535 এর চেয়ে বেশি হতে পারে কি?"

এটি ইউএফও (ইউডিপি ফ্রেগমেন্টেশন অফলোড) নামে একটি অফলোডিং বৈশিষ্ট্যের কারণে is এই লিঙ্কটি দেখুন দয়া করে ।

আপনি যথাক্রমে ethtool -k ethX এবং ethtool -K ethX এর মাধ্যমে অফলোডিং বৈশিষ্ট্যগুলি যাচাই ও টগল করতে পারেন।


0

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

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