MTU چیست و چگونه مشکلات رایج مرتبط با آن را برطرف کنیم؟

فهرست مطالب

حداکثر واحد انتقال MTU سرنام Maximum Transmission Unit در شبکه‌های کامپیوتری، به بیشینه اندازه بسته‌های داده‌ای (بر حسب بایت) اشاره دارد که می‌تواند در یک لحظه در لایه شبکه منتقل شود. به عبارت دیگر، این مقدار تعیین می‌کند که بزرگترین قطعه داده‌ای که می‌تواند بدون تقسیم شدن به قطعات کوچکتر در شبکه ارسال شود، چقدر است. به طور معمول، مقدار MTU در تنظیمات رابط شبکه (Network Interface) تجهیزاتی مثل کامپیوترها، روترها و سوئیچ‌ها پیکربندی می‌شود. مقدار پیش‌فرض MTU برای اکثر شبکه‌های اترنت 1500 بایت است، اما در برخی موارد بهتر است این مقدار تغییر کند.

اگر بسته‌ای بزرگتر از MTU یک لینک شبکه باشد، باید به قطعات کوچکتر تقسیم شود که به این فرآیند قطعه‌قطعه شدن (fragmentation) گفته می‌شود. این فرآیند می‌تواند باعث افزایش سربار (overhead) و کاهش کارایی شبکه شود، زیرا هر قطعه باید هدرهای خود را داشته باشد و در مقصد دوباره سرهم بندی شود. بنابراین، تنظیم صحیح MTU برای جلوگیری از قطعه قطعه شدن و بهینه‌سازی عملکرد شبکه اهمیت دارد. در برخی موارد، مانند استفاده از پروتکل‌های VPN که سربار اضافی به بسته‌ها اضافه می‌کنند، ممکن است لازم باشد مقدار MTU را کاهش داد تا از قطعه قطعه شدن جلوگیری شود. این راهکار بر مبنای فرآیندی تحت عنوان PMTU سرنام (Path MTU Discovery) به طور خودکار MTU مناسب را در طول مسیر بین دو دستگاه تعیین می‌کند تا از قطعه قطعه شدن جلوگیری شود. برای درک بهتر این مفهوم اجازه دهید به ذکر مثالی بپردازیم.

فرض کنید دو کامپیوتر در یک شبکه اترنت با MTU پیش‌فرض 1500 بایت در حال برقراری ارتباط هستند. اگر یک برنامه در کامپیوتر اول بخواهد یک بسته داده به اندازه 2000 بایت به کامپیوتر دوم ارسال کند، این بسته بزرگتر از حداکثر اندازه مجاز برای انتقال در یک واحد (1500 بایت) است. در این حالت، روتر یا خود سیستم عامل کامپیوتر اول، بسته 2000 بایتی را به دو قطعه تقسیم می‌کند. قطعه اول می‌تواند حداکثر 1500 بایت داده را در خود جای دهد و قطعه دوم شامل 500 بایت باقی مانده داده خواهد بود. هر یک از این قطعات هدرهای لایه شبکه (مانند هدر IP) و لایه انتقال (مانند هدر TCP یا UDP) خود را خواهند داشت. این قطعات به طور جداگانه از طریق شبکه ارسال می‌شوند و در نهایت در کامپیوتر دوم، سیستم عامل یا پروتکل‌های شبکه، این دو قطعه را بر اساس اطلاعات موجود در هدرها دوباره به بسته اصلی 2000 بایتی سرهم بندی می‌کنند.

این فرآیند قطعه قطعه شدن و سرهم‌بندی مجدد می‌تواند باعث افزایش تاخیر و کاهش کارایی شبکه شود، زیرا سربار اضافی به دلیل هدرهای متعدد و پردازش مورد نیاز برای قطعه قطعه کردن و سرهم بندی کردن وجود دارد. اگر MTU در مسیر ارتباطی بین دو کامپیوتر به درستی تنظیم شده باشد (مثلا هر دو طرف از MTU یکسان و مناسب با شبکه استفاده کنند)، این بسته 2000 بایتی بدون نیاز به قطعه قطعه شدن به مقصد خواهد رسید و کارایی شبکه بهبود خواهد یافت.

شایان ذکر است، مفهوم MTU بیشتر با لایه شبکه (لایه 3 مدل OSI) و به طور خاص لایه IP (پروتکل اینترنت) و لایه پیوند داده (لایه 2) مرتبط است. دلیلش این است که MTU در لایه IP بزرگترین بسته IP (شامل هدر IP و بار داده) را تعریف می‌کند که می‌تواند بدون قطعه‌قطعه شدن از طریق یک لینک شبکه منتقل شود. در حالی که هدر IP یک فیلد طول کل دارد که اندازه کل بسته IP را نشان می‌دهد، این فیلد MTU را تعریف نمی‌کند؛ بلکه طول بسته که باید کمتر یا مساوی MTU رابط خروجی باشد را تعیین می‌کند. اگر یک بسته بزرگتر از MTU باشد و علامت “عدم قطعه‌قطعه شدن” (DF) در هدر IP تنظیم نشده باشد، بسته در لایه IP قطعه‌قطعه خواهد شد. همچنین، MTU در لایه پیوند داده حداکثر اندازه فریم مجاز توسط پروتکل لایه پیوند داده مورد استفاده (مثلاً اترنت) را نشان داده و محدود می‌کند. فریم اترنت هدر و تریلر خود را دارد و بسته IP در قسمت داده این فریم حمل می‌شود. MTU لایه IP باید به اندازه‌ای کوچک باشد که در این قسمت داده جای بگیرد.

چرا پیکربندی درست MTU اهمیت زیادی دارد؟

تنظیم صحیح MTU تاثیر مستقیمی بر کارایی، قابلیت اطمینان و عملکرد کلی ارتباطات شبکه دارد. به طور معمول، ما فیلد MTU را به دلایل زیر پیکربندی می‌کنیم:

1. جلوگیری از بروز مشکل Fragmentation: همان‌طور که پیش‌تر اشاره شد، اگر اندازه بسته داده بزرگتر از MTU لینک شبکه باشد، باید به قطعات کوچکتر تقسیم شود که سربار زیادی به ویژه در شبکه‌های با ترافیک بالا به وجود می‌آورد. هر قطعه علاوه بر داده‌های اصلی، هدرهای لایه شبکه و لایه انتقال خود را دارد. به بیان دقیق‌تر، پهنای باند بیشتری برای انتقال داده‌های یکسان مصرف می‌شود. علاوه بر این، دستگاه‌های میانی مانند روترها و همچنین دستگاه مقصد باید منابع پردازشی بیشتری را برای قطعه قطعه کردن و سرهم بندی مجدد بسته‌ها صرف کنند. این امر می‌تواند منجر به افزایش تاخیر (latency) و کاهش سرعت انتقال داده‌ها شود. با تنظیم MTU به مقداری که با کمترین MTU در طول مسیر ارتباطی سازگار باشد، می‌توان از قطعه قطعه شدن جلوگیری کرده و کارایی شبکه را بهینه ساخت.

2. بهبود کارایی شبکه: با جلوگیری از بروز مشکل قطعه قطعه شدن، سربار ناشی از هدرهای اضافی و پردازش‌های مربوط به آن کاهش می‌یابد که باعث استفاده بهینه‌تر از پهنای باند موجود و افزایش سرعت انتقال داده‌ها می‌شود. در این حالت، بسته‌های بزرگتر (تا حد MTU) می‌توانند داده‌های بیشتری را در یک واحد منتقل کنند و تعداد بسته‌های مورد نیاز برای انتقال یک حجم مشخص از داده‌ها را کاهش دهند. این امر به نوبه خود باعث کاهش سربار کلی پروتکل‌های شبکه می‌شود.

3. کاهش احتمال از دست رفتن بسته‌ها: در برخی موارد، قطعات بسته‌های بزرگ ممکن است در طول مسیر شبکه گم شوند. اگر یک قطعه از یک بسته قطعه قطعه شده از دست برود، کل بسته باید دوباره ارسال شود. این امر نه تنها باعث افزایش تاخیر می‌شود بلکه بار بیشتری را بر شبکه تحمیل می‌کند. بنابراین، تنظیم صحیح MTU نرخ تلفات در شبکه را کاهش داده و مشکلات مربوط به ناقص دریافت شدن بسته‌های اطلاعاتی را به شکل قابل توجهی کاهش می‌دهد.

4. سازگاری با شبکه‌های مختلف: شبکه‌های مختلف ممکن است مقادیر MTU متفاوتی داشته باشند. برای مثال، شبکه‌های اترنت معمولا از MTU برابر با 1500 بایت استفاده می‌کنند، در حالی که برخی از شبکه‌های VPN یا PPPoE ممکن است MTU کمتری داشته باشند. اگر MTU دستگاه شما به درستی با MTU شبکه‌ای که به آن متصل هستید سازگار نباشد، ممکن است با مشکلاتی در برقراری ارتباط یا کاهش کارایی مواجه شوید. برای حل این مشکل، کارشناسان شبکه از فرآیند PMTU سرنام (Path MTU Discovery) استفاده می‌کنند که تلاشی برای تعیین خودکار MTU مناسب در طول مسیر ارتباطی است، اما همیشه قابل اعتماد نیست و ممکن است توسط فایروال‌ها مسدود شود. در چنین مواردی، تنظیم دستی MTU راهکار بهتری است.

5. بهبود تجربه کاربری: در نهایت، تنظیم صحیح MTU منجر به ارتباطات شبکه‌ای سریعتر، پایدارتر و کارآمدتر می‌شود که به طور مستقیم بر تجربه کاربری تاثیر مثبت می‌گذارد. این موضوع به ویژه در زمان برقراری جلسات آنلاین، ویدیو کنفرانس‌ها، آپلود روان‌تر فایل‌ها و غیره مهم است.

چطور MTU را به شکل درستی پیکربندی کنیم؟

پیکربندی و تنظیم MTU بسته به سیستم عامل و نوع اتصال شبکه متفاوت است. از این‌رو، در ادامه یک راهنمای کلی برای پیکربندی MTU در سیستم عامل‌های رایج و روترها را مورد بررسی قرار می‌دهیم تا خوانندن عزیز شناخت بهتری در این زمینه پیدا کنند. اما ابتدا باید به چند نکته مهم اشاره داشته باشیم:

قبل از تغییر MTU، باید مقدار مناسب برای شبکه خود را تعیین کنید. مقدار پیش‌فرض برای اکثر شبکه‌های اترنت 1500 بایت است. اگر از VPN یا PPPoE استفاده می‌کنید، بهتر است مقدار MTU کمتری را تنظیم کنید. مقدار بهینه 1400 تا 1492 بایت است. بهترین راه برای یافتن MTU مناسب استفاده از ابزار خط فرمان برای ارسال بسته‌های ICMP با اندازه‌های مختلف و بررسی این موضوع است که آیا نیاز به قطعه قطعه شدن وجود دارد یا خیر. البته، به این نکته مهم توجه داشته باشید که تغییر MTU می‌تواند باعث بروز مشکلاتی در برقراری اتصال شبکه شود، زیرا اگر مقدار نادرستی تنظیم شود، زمان بیشتری باید صرف دریافت بسته‌های اطلاعاتی شود. قبل از اعمال تغییرات، مقدار فعلی MTU خود را یادداشت کنید تا در صورت بروز مشکل بتوانید آن را به حالت اولیه برگردانید. پس از تغییر MTU، ممکن است لازم باشد سیستم یا روتر خود را ریستارت کنید تا تغییرات اعمال شوند.

روشهای تنظیم MTU

اکنون اجازه دهید روش‌های تنظیم مقدار MTU در سیستم عامل‌های رایج را مورد بررسی قرار دهیم.

1. در ویندوز:

در سیستم عامل ویندوز Command Prompt را با مجوز مدیریتی اجرا کنید. برای این منظور در منوی Start واژه “cmd” را جست‌وجو کنید، روی “Command Prompt” راست کلیک کرده و “Run as administrator” را انتخاب کنید. اکنون لیست رابط‌های شبکه را مشاهده کنید. دستور زیر را وارد کرده و اینتر را بزنید:

netsh interface ipv4 show subinterfaces

نام رابط شبکه مورد نظر خود را یادداشت کنید (مثلا “Ethernet” یا “Wi-Fi”). دستور زیر را با جایگزین کردن YourInterfaceName با نام رابط شبکه خود و YourMTUValue را با مقدار MTU مورد نظر وارد کرده و اینتر را بزنید:

netsh interface ipv4 set subinterface “YourInterfaceName” mtu=YourMTUValue store=persistent

دستور netsh interface ipv4 show subinterfaces یا netsh interface ipv6 show subinterfaces را اجرا کنید تا مطمئن شوید مقدار MTU برای رابط مورد نظر تغییر کرده است. اکنون، زمان ریستارت کردن سیستم است.

روش دومی که برای این منظور وجود دارد، Registry Editor است که توصیه نمی‌شود مگر اینکه با آن آشنا باشید. در منوی Start دستور “regedit” را وارد کرده و کلید اینتر را فشار دهید. اکنون به مسیر زیر بروید (بسته به رابط شبکه ممکن است متفاوت باشد):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface\

زیر کلید مربوط به رابط شبکه خود را پیدا کنید. برای شناسایی آن، به دنبال کلیدی بگردید که نام رابط شبکه شما در مقدار “FriendlyName” آن وجود داشته باشد. در سمت راست پنجره، راست کلیک کرده، “New” را انتخاب کنید و سپس “DWORD (32-bit) Value” را برای IPv4 یا “QWORD (64-bit) Value” را برای IPv6 انتخاب کنید. نام آن را MTU بگذارید. روی مقدار جدید MTU دوبار کلیک کنید، “Decimal” را انتخاب کنید و مقدار MTU مورد نظر خود را در قسمت “Value data” وارد کنید. OK را کلیک کنید و Registry Editor را ببندید. سیستم خود را ریستارت کنید.

سیستم عامل لینوکس

ترمینال را باز کنید. اکنون، لیست رابط‌های شبکه را مشاهده کنید. دستور زیر را وارد کرده و اینتر را بزنید:

ip a

نام رابط شبکه مورد نظر خود را یادداشت کنید (مثلا “eth0” یا “wlan0”). دستور زیر را با جایگزین کردن YourInterfaceName با نام رابط شبکه خود و YourMTUValue را با مقدار MTU مورد نظر وارد کرده و اینتر را بزنید:

sudo ip link set dev YourInterfaceName mtu YourMTUValue

از شما رمز عبور مدیر سیستم خواسته می شود. دوباره از دستور ip a استفاده کنید تا مطمئن شوید مقدار MTU برای رابط مورد نظر تغییر کرده است. این تغییر معمولا بلافاصله اعمال می‌شود و نیازی به ریستارت نیست. برای دائمی کردن تغییرات، باید تنظیمات شبکه را در فایل پیکربندی مربوط به توزیع لینوکس خود ویرایش کنید (محل و نحوه ویرایش این فایل بسته به توزیع متفاوت است).

در سختافزار روتر

تنظیم MTU در روتر معمولا از طریق رابط وب پیکربندی روتر انجام می شود. مراحل کلی به شرح زیر است (ممکن است بسته به مدل و سازنده روتر شما متفاوت باشد):

به رابط وب پیکربندی روتر وارد شوید. برای این‌کار باید از طریق آدرس آی‌پی روتر (معمولاً 192.168.1.1 یا 192.168.0.1) در نوار آدرس مرورگر اقدام کنید تا به داشبورد روتر برسید. نام کاربری و رمز عبور روتر خود را وارد کنید. اگر آنها را تغییر نداده‌اید، ممکن است مقادیر پیش‌فرض روی بدنه روتر یا در دفترچه راهنمای آن نوشته شده باشند. به تنظیمات WAN یا اینترنت بروید. به دنبال بخشی با عنوان WAN”، Internet”، یا چیزی مشابه بگردید. در تنظیمات WAN، باید گزینه‌ای برای تنظیم MTU وجود داشته باشد. ممکن است با عنوان “MTU Size” یا مشابه آن نامگذاری شده باشد. مقدار MTU مناسب برای اتصال اینترنت خود را وارد کنید. اگر از PPPoE استفاده می‌کنید، مقدار معمولا 1492 است. اگر مطمئن نیستید، با ISP خود تماس بگیرید یا از ابزارهای آنلاین برای تعیین MTU مناسب استفاده کنید. تغییرات را ذخیره‌سازی کنید. در این حالت، روتر به طور خودکار ریستارت می‌شود تا تغییرات اعمال شوند.

نحوه پیدا کردن MTU مناسب با استفاده از خط فرمان

می‌توانید از دستور ping (در ویندوز و macOS) یا ping (در لینوکس) برای تست MTU استفاده کنید. ایده این است که بسته‌های ICMP را با اندازه‌های مختلف ارسال کنید و بررسی کنید که آیا نیاز به قطعه قطعه شدن دارند یا خیر. در سیستم عامل ویندوز دستور زیر را اجرا کنید:

ping -f -l <size> <destination_ip_or_hostname>

  • -f: فلاگ “Do Not Fragment” را تنظیم می کند.

  • -l <size>: اندازه بسته داده (بدون احتساب هدرها) را مشخص می کند.

  • <destination_ip_or_hostname>: آدرس IP یا نام دامنه یک میزبان راه دور (مثلاً https://www.google.com/search?q=google.com).

پیشنهاد می‌کنیم کار را با یک اندازه بزرگ (مثلا 1472 برای در نظر گرفتن 28 بایت هدر IP و ICMP برای MTU 1500) شروع کرده و به تدریج آن را کاهش دهید تا زمانی که پاسخ بدون نیاز به قطعه قطعه شدن دریافت کنید. MTU مناسب معمولا 28 بایت بزرگتر از بزرگترین اندازه بسته‌ای است که با موفقیت پینگ می‌شود.

در سیستم عامل macOS و لینوکس به شرح زیر اقدام کنید:

ping -D -s <size> <destination_ip_or_hostname>

  • -D: فلاگ “Do Not Fragment” را تنظیم می کند.

  • -s <size>: اندازه بسته داده (بدون احتساب هدرها) را مشخص می‌کند.

  • <destination_ip_or_hostname>: آدرس IP یا نام دامنه یک میزبان راه دور.

همانند ویندوز، با یک اندازه بزرگ شروع کنید و به تدریج آن را کاهش دهید تا زمانی که پاسخ بدون خطا دریافت کنید. MTU مناسب معمولا اندازه بسته موفقیت‌آمیز به اضافه 28 بایت (برای هدرهای IP و ICMP) است.

اشتراک‌گذاری
نویسنده
تصویر حمیدرضا تائبی
حمیدرضا تائبی
مطالب مشابه
برای دریافت مشاوره و یا اطلاع از قیمت، با ما در تماس باشید.