حداکثر اندازه قطعه

از ویکی‌پدیا، دانشنامهٔ آزاد

حداکثر اندازه قطعه (MSS) (به انگلیسی: maximum segment size) پارامتری از قسمت گزینه های سرآیند TCP است که بیشترین مقدار داده ، مشخص شده در بایت را مشخص می کند که یک رایانه یا دستگاه ارتباطی می تواند در یک بخش TCP دریافت کند. هدر TCP یا هدر IP را محاسبه نمی کند (برای مثال ، MTU برای برنامه های داده IP)[۱]. دیتاگرام IP شامل یک بخش TCP ممکن است در یک بسته منفرد باشد ، یا ممکن است از چندین قطعه تکه تکه شده بازسازی شود. به هر صورت ، محدودیت MSS به مقدار کل داده موجود در بخش TCP نهایی و بازسازی شده اعمال می شود.

برای جلوگیری از تکه تکه شدن در IP layer ، یک میزبان باید حداکثر اندازه قطعه را برابر با بزرگترین دیتاگرام IP تعیین کند که میزبان بتواند بدون توجه به اندازه هدر IP و TCP را مدیریت کند.[۲] بنابراین ، میزبان های IPv4 می توانند توانایی مدیریت MSS 536 اکتت (= 576 - 20 - 20)[۳] و میزبان های IPv6 نیز توانایی مدیریت MSS 1220 اکت (1280 - 40 - 20)[۴] را داشته باشند.

مقادیر کوچک MSS باعث کاهش یا از بین رفتن تکه تکه شدن IP می شود اما منجر به overhead بیشتر می شود.[۵]

هر جهت جریان داده ها می تواند یک MSS مختلف استفاده کنید.

برای بیشتر کاربران رایانه ، گزینه MSS توسط سیستم عامل ایجاد می شود.

مقدار پیشفرض[ویرایش]

حداکثر اندازه قطعه پیش فرض TCP مقدار 536 است.[۶] در جایی که یک میزبان بخواهد حداکثر اندازه قطعه را روی مقداری غیر از پیش فرض تنظیم کند ، ابتدا در بسته TCP SYN در حین TCP handshake حداکثر اندازه قطعه به عنوان گزینه TCP مشخص می شود. بعد از برقراری اتصال نمی توان مقدار را تغییر داد.[۷]

ارتباط بین لایه ها[ویرایش]

به منظور اطلاع MSS به انتهای دیگر ، یک ارتباط بین لایه ای به شرح زیر انجام می شود:[۸]

  • درایور شبکه (ND) یا رابط، باید حداکثر واحد انتقال (MTU) شبکه مستقیماً متصل را بشناسد.
  • IP باید از درایور شبکه حداکثر واحد انتقال را بخواهد.
  • پروتکل TCP باید IP برای حداکثر اندازه دیتاگرام داده ها (MDDS) بپرسد.که این برابر با MTU منهای طول سرآیند IP است (MDDS = MTU - IPHdrLen).
  • هنگام باز کردن اتصال ، TCP می تواند گزینه MSS را با مقداری برابر با: MDDS - TCPHdrLen ارسال کند. به عبارت دیگر ، مقدار MSS برای ارسال عبارت است از: MSS = MTU - TCPHdrLen - IPHdrLen

هنگام ارسال بخش های TCP به انتهای دیگر ، یک ارتباط بین لایه ای به شرح زیر انجام می شود:[۹]

  • TCP باید حداکثر بخش حجم داده ها (MSDS) از هر دو به طور پیش فرض و یا ارزش دریافت از گزینه MSS تعیین می کند.
  • TCP باید تعیین کند که آیا تکه تکه شدن منبع (با پرسیدن IP) امکان پذیر و مطلوب است.
    • در این صورت ، TCP ممکن است به IP ، قطعه‌ها (از جمله سرآیند TCP) تا MSDS + TCPHdrLen را تحویل دهد.
    • در غیر اینصورت ، TCP ممکن است به IP ، قطعه‌ها (از جمله سرآیند TCP) تا کمتر از (MSDS + TCPHdrLen) و MDDS دست یابد.
  • IP طول داده های منتقل شده توسط TCP را بررسی می کند. اگر طول MDDS کمتر یا مساوی باشد ، آی پی هدر IP را متصل می کند و آن را به ND می سپارد. در غیر این صورت ، IP باید تقسیم بندی منبع را انجام دهد.

MSS و MTU[ویرایش]

MSS گاهی با MTU/PMTU ترکیب می شود ، که مشخصه لایه پیوند(link layer) زیرین است ، در حالی که MSS به طور خاص برای TCP و از این رو لایه حمل و نقل(transport layer) اعمال می شود. این دو از این نظر که حداکثر اندازه بار حمل شده توسط واحد داده پروتکل (protocol data unit) مربوطه خود را محدود می کنند (قاب برای MTU ، بخش TCP برای MSS) مشابه هستند ، و از آنجا که MSS نمی تواند برای پیوند اصلی خود از MTU فراتر رود (با در نظر گرفتن سربار از هدرهایی که توسط لایه های زیر TCP اضافه می شوند). با این حال ، تفاوت بین این دو علاوه بر اعمال به لایه های مختلف ، این است که MSS می تواند در هر جهت دارای مقدار متفاوتی باشد و همچنین فریم های فراتر از MTU ممکن است در نهایت توسط لایه انتقال تقسیم شوند ، در حالی که بخشهای بیش از MSS به سادگی دور ریخته می شوند.

مطالعه بیشتر[ویرایش]

  • Comer, Douglas E. (2006). Internetworking with TCP/IP. Vol. Vol. 1 (5/E ed.). Upper Saddle River, NJ, USA: Prentice Hall. {{cite book}}: |volume= has extra text (help)
  • Kozierok, Charles M. (2005-09-20). The TCP/IP Guide (3.0 ed.). Retrieved 2011-09-08.

مطالب مشابه[ویرایش]

منابع[ویرایش]

  1. RFC 879, page 2, Section 3, "The MSS counts only data octets in the segment, it does not count the TCP header or the IP header."
  2. RFC 2460, page 28, Section 8.3
  3. RFC 879, page 1, Section 1
  4. RFC 2460, page 24, Section 5
  5. The TCP/IP Guide, TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size
  6. RFC 879, page 1, Section 1, "The default TCP Maximum Segment Size is 536."
  7. RFC 793, page 19, Section 3.1, "This field must only be sent in the initial connection request (i.e., in segments with the SYN control bit set)."
  8. RFC 879, page 1, Section 11
  9. RFC 879, page 1, Section 11