Loading…

جزیره شبکه و زیرساخت

ارسال کننده: UNITY
محمد نصیری ، بنیانگذار TOSINSO ، کارشناس امنیت اطلاعات و ارتباطات و کشف جرائم رایانه ای ، هکر کلاه سفید ، تخصص در حوزه امنیت سیستم عامل و تست های نفوذسنجی ، لینوکس ، مجازی سازی ، سرویس های کاربردی سرور و ... سابقه همکاری در بیش از 40 سازمان دولتی ، خصوصی و نظامی در حوزه پروژه ، مشاوره و آموزش ، بیش از 10 هزار ساعت سابقه آموزشی در طی 12 سال فعالیت حرفه ای ...
ارسال پیام خصوصی
امتیازات این مطلب
نکته: تفاوت بین MTU ( Maximum Transmission Unit ) با MSS ( Maximum Segment Size) در چیست ؟
خوب شما هم ممکن است به عنوان یک ITPRO در یک روتر یا مودم اینترنت و در قسمت تنظیمات مربوط به PPPOE مواردی به شکل MTU یا MSS را دیده باشید. MTU در واقع با توجه به معنی لغوی که Maximum Transmission Unit می باشد به معنی حداکثر اندازه واحد قابل انتقال یک بسته IP بر روی یک لینک ارتباطی می باشد. در واقع اگر بسته اطلاعاتی یا Packet ای اندازه ای بزرگتر از اندازه MTU داشته باشد سیستم بصورت خودکار بسته را Fragment یا تکه تکه کرده و تبدیل به تکه های کوچکتر می کند و در قسمت های بعدی ارسال خواهد کرد. توجه کنید که در مکانیزم ارتباطی که در IPv6 استفاده می شود دیگر فرآیند Fragmentation یا تکه تکه سازی انجام نمی شود.اما MSS مخفف Maximum Segment Size می باشد که برای بسته های اطلاعاتی از نوع TCP بیشتر مورد استفاده قرار می گیرد ، برخلاف MTU که اگر بیشتر از اندازه باشد تکه تکه می شود در MSS اگر یک Segment بیشتر از اندازه تعریف شده باشد دیگر تکه تکه نخواهد شد بلکه بصورت کلی Segment مورد نظر نادیده گرفته خواهد شد و اتصال قطع می شود.

تفاوت MTU و MSS در چیست


MSS خودش را درگیر فرآیند TCP Handshake نمی کند و به ازای هر Packet نیز درخواست یک تاییده نمی کند و معمولا به ازای یک Session تاییده ها را دریافت و ارسال می کند. زمانیکه شما از ارتباطات PPPOE استفاده می کنید اگر بار ترافیکی یا Overhead شما زیاد است نیاز دارید که MSS را در مسیر ارتباطی کاهش بدهید . البته اینکار باید با محاسبه و دقیق انجام شود. PPPoE بصورت خودکار 8 بایت ( 6 بایت بصورت PPPoE و 2 بایت بصورت PPP ) بر روی هر چیزی اعم از IP یا TCP اضافه می کند و این بدین معناست که بصورت پیشفرض بر روی شبکه های Ethernet ما عدد 1500 بایت را برای MTU داریم و این در حالی است که عدد 1492 بصورت خودکار برای MSS در تنظیمات پیشفرض قرار گرفته است.علاوه بر اینها برای ساده تر شدن مفهوم توجه کنید که عدد و مقداری که برای MSS در نظر گرفته می شود از عددی که برای MTU قرار داده شده است گرفته می شود. برای مثال اگر شما یک Packet به اندازه 800 بایت داشته باشید یعنی Packet اصلی 2260 بایت اگر باشد ، Packet شما در زمان انتقال به دو قسمت 1460 بایتی و 800 بایتی تقسیم خواهند شد ، این در حالی است که MTU شما عدد 1500 باشد یعنی شکسته شدن یا Fragment شدن بسته اطلاعاتی ، دقت کنید که اگر MSS شما عدد 800 باشد عدد MTU شما حداقل باید 840 باشد ، با توجه به اینکه Overhead ای که PPPOE بر روی سیستم قرار می دهد 8 بایت است ، هر چند می دانم این مطلب کمی مبهم است اما فقط به این توجه داشته باشید که MTU بزرگتر از MSS است و یکی در قالب Packet و دیگری در قالب Segment کار می کنند ، MTU اگر بسته بزرگ دریافت کند می شکند و MSS اینکار را نمی کند برای درک ایندو در حال حاضر کافی است. ITPRO باشید

نویسنده : محمد نصیری
منبع : ITPRO
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

دیدگاه ها
  • ارسال توسط:
  • زمان ارسال: 13 ماه قبل
بسیار کامل و زیبا
ممنون
فقط استاد طریقه بدست اوردن رو هم لطف میکنید بگید؟

  • ارسال توسط:
  • زمان ارسال: 13 ماه قبل
مطلب مفیدی بود ولی همونطوری که فرمودید مقداری مبهم بود.
اصلا کاربرد MSS چی هست؟ یا بهتر بگم کجا و به چه دلیل به MSS بر می خوریم؟ اصلا چرا باید MSS چک بشه مگه در نهایت MTU سایز رو چک نمی کنه؟

بنظرم MSS در ارتباطات غیر اتصال گرا یا همون Connectionless و در مقابل MTU در ارتباطات اتصال گرا یا Connection oriented استفاده میشه.و اینکه MTU بر کل بسته اطلاعاتی اعم از header و payload نظارت داره اما MSS فقط بر payload نظارت میکنه.اگه اشتباه میکنم لطفا بگین...
  • ارسال توسط:
  • زمان ارسال: 13 ماه قبل
فکر نکنم Connection-less باشه چون همیشه MSS در رابطه با TCP مطرح میشه که میدونیم Connection Oriented هستش.
  • ارسال توسط:
  • زمان ارسال: 13 ماه قبل
در پاسخ دوستی که اولین پست رو گذاشتند اگر فرض کنیم MTU پیشفرض 1500 و MSS پیشفرض 1460 باشه فرمول محاسبه :
MSS = MTU - 20(IP header) - 20(TCP Header) = 1460
  • ارسال توسط:
  • زمان ارسال: 13 ماه قبل
در پاسخ به سئوال دوم باید بگم که بحث این هست که TCP/IP یک پروتکل ترکیبی UDP و TCP هست همونطور که از اسمش پیداست ، MSS پارامتری هست که در Option های فیلدهای یک TCP Header بررسی می کنه که اندازه ارسال و دریافت یک Segment در لایه چهارم ( نه در لایه سوم ) چقدر باید باشه ( به بایت ) این پارامتر MSS فقط و فقط مربوط به TCP Segment میشه و هیچکاری با TCP Header نداره که در IP Header قرار گرفته ، بر خلاف MTU که با IP Header کار داره ، ساده تر بگم MSS برای اندازه TCP Header و MTU برای اندازه IP Header استفاده میشن.
  • ارسال توسط:
  • زمان ارسال: 13 ماه قبل
البته چون بحث Connection Less و Connection Oriented شد باید بگم که IP یک پروتکل Connection Less و TCP یک پروتکل Connection Oriented هست و تجمیع این دو پروتکل ترکیبی به نام TCP/IP شده که سرعت و دقت هر دو نوع پروتکل رو داخلش داره ، بنابراین همزمان باید از MSS و MTU استفاده کرد در TCP/IP
یه نکته ای الان به ذهنم رسید گفتم بگم که خالی از لطف نباشه اینکه مفهومی به نام MTU black hole وجود داره که black hole یا همون حفره سیاه در شبکه های کامپیوتری به ناحیه ای گفته میشه که packet ها drop شدن و هرگز از اون ناحیه استفاده نمیشه و دلیل اینکه پکت ها drop میشن اینه که سایز MTU از سایز پکت کوچکتر هستش.
برای ارسال نظر وارد شوید.