MSS یا Maximum Segment Size (حداکثر اندازه یک بخش) مسئولیت محدود کردن اندازهی پکتهایی که از طریق یک شبکه مانند اینترنت عبور میکنند را بر عهده دارد. تمامی دادههایی که از طریق شبکه منتقل میشوند به قسمتهای کوچکتری به نام پکت تقسیم میشوند.
پکتها چندین هدر حاوی اطلاعاتی در مورد محتوا و مقصد آنها دارند که به صورت متصل به آنها، منتقل میشوند. کاری که MSS انجام میدهد این است که بخش اصلی اطلاعات پکتها را که تحت عنوان payload شناخته میشود، اندازهگیری میکند.
در صورتی که پکت دادهها را با کامیون مخصوص حمل و نقل مقایسه کنیم، خود کامیون همان هدر است و باری که حمل میکند payload است. سپس MSS، همانند ترازو فقط تریلر را اندازه میگیرد. در صورتی که وزن تریلر بسیار زیاد باشد، کامیون مجاز به ادامه مسیر خود نمیباشد.
به بیان دقیقتر، MSS بزرگترین TCP (پروتکل Transport Control) است که یک دستگاه متصل به شبکه میتواند دریافت کند. در حقیقت MSS اندازهگیری هر بخش (segment) را به صورت طول payload انجام میدهد و هدر ضمیمهی آن را اندازه گیری نمیکند. اندازهگیری MSS بر اساس بایت میباشد.
MSS توسط MTU یا Maximum Transmission Unit تعیین میشود که شامل TCP و IP میباشد. در مثال کامیون میتوان گفت، MTU مجموع وزن کامیون به همراه تریلر و باری که حمل میکند را اندازه میگیرد.
MSS معادل MTU منهای سایز هدر TCP و هدر IP میباشد.
MTU – (TCP header + IP header) = MSS
یکی از تفاوتهای اساسی بین MTU و MSS این است که چنانچه یک پکت بیشتر از MTU دستگاه باشد، آن را به قسمتهای کوچکتر تقسیم مینماید. اما در صورتی که یک پکت بیشتر از MSS باشد، آن را رها نموده و به مقصد نمیرساند.
TCP چیست؟
پروتکل کنترل انتقال یا TCP، پروتکلی است که اطمینان حاصل میکند پکتهای داده به ترتیب تحویل و دریافت میشوند و از بین نمیروند. مانند خدمات تحویل کالا که زودتر از موعد تحویل بسته، با دریافت کننده تماس گرفته و مطمئن میشوند که در منزل هستند، سپس تایید تحویل کالا را برای فرستنده ارسال میکنند.
TCP نیز تا حدودی به همین روش کار میکند و تحویل صحیح پکتها را ضمانت میکند.
طول هدرهای TCP و IP چقدر است؟
هدرهای TCP تقریبا همیشه به اندازهی 20 بایت طول دارند. IP header نیز 20 بایت طول دارد و شامل اطلاعاتی نظیر مبدا و مقصد آدرس IP میباشد. هم پکتهای TCPو هم IP شامل هدرهای اختیاری هستند که باعث میشود طولانیتر شوند، اما هرگز مورد استفاده قرار نمیگیرند.
استفاده از IPSec چگونه بر MSS تاثیر می گذارد؟
IPsec ا(Internet Protocol Security) نسخهی رمزگذاری شدهی IP است. پکتهای دادهای که با استفاده از IPSec ارسال میشوند، طوری به هم ریخته میشوند که تنها دو دستگاه متصل به هم قادر به تفسیر آنها هستند و محتوای آنها از هر فردی که ممکن است به پکتها دسترسی پیدا کند، ایمن میماند.
قابل ذکر است غالبا از IPSec برای راهاندازی شبکههای خصوصی مجازی یا V.PNها استفاده میشود. IPSec چندین بایت به طول پکت میافزاید. در ارتباطاتی که از این رمزگذاری استفاده میکنند، MSS میبایست IPSec را این طور در نظر بگیرد:
MTU – (TCP header + IP header + IPsec) = MSS
MSS معیاری برای لایهی شبکه است یا لایهی انتقال؟
MSS معیاری برای لایهی 4 یا لایه انتقال است و به همراه TCP یا پروتکل لایه انتقال، مورد استفاده قرار میگیرد. با این حال، ارتباط نزدیکی با MTU دارد که در لایه 3 یا لایه شبکه اعمال میشود.
MSS Clamping چیست؟
گاهی اوقات یک روتر در طول مسیر شبکه دارای مقدار MTU کمتر از 1500 بایت است. این امر منجر به از دست رفتن پکت میشود و تشخیص آن نیز بسیار دشوار است.
گزینهای که به منظور کسب اطمینان از اینکه در چنین شرایطی بسته به مقصد میرسد وجود دارد، کاهش سایز payload ورودی پکت میباشد. با تنظیم و پیکربندی سرور به منظور اعمال MSS Clamp میتوان به این گزینه دست پیدا کرد.
سرور میتواند MSS را در حین TCP handshaker برای بستههایی که مایل به دریافت هستند، علامتگذاری کند و سایز payloadها را از سرورهای دیگر به حداکثر برسد. به عنوان مثال، در صورتی که سرورهای A و B از طریق TCP با یکدیگر ارتباط برقرار کنند و سرور B با MSS 1436 بایت ارتباط داشته باشد، سرور A پکتها را با حداکثر سایز payload 1436 بایت در مدت زمان ارتباط، ارسال میکند.
یکی دیگر از کاربردهای MSS Clamping در GRE Tunneling است که در آن یک هدر 24 بایتی به پکت اصلی اضافه شده تا آن را به مقصد جدید ارسال کند. اگر پکت اصلی بزرگتر از 1476 بایت بود، میتوانست بستهی جدیدی ایجاد نماید که بیشتر از 1500byte MTU باشد. MSS Clamp را میتوان در مورد پکتهای ورودی کمتر از 1500 بایت نیز اعمال کرد حتی اگر بعد از اعمال GRE header باشد.
منبع: www.cloudflare.com