Fragment in ipv4 and Ipv6

تو ipv4 اگه سایز پکت از mtu لینک بیشتر باشه یه قابلیتی تو لایه ip وجود داره به نام fragmentation که اگه این اتفاق بیفته لایه ip مجددا این پکت رو fragment می کنه یعنی به چند تیکه مساوی تقسیم می کنه و هر تیکه رو مستقلا ارسال می کنه، در مقصد گیرنده با استفاده از flag هایی که روی این پکت ها هستن این fragment ها در مقصد شناسایی میشن و مجددا به اون تیکه اصلی که باید تحویل لایه transport داده بشه داده خواهند شد، کجا
fragment
میشه، هم در مبدا و هم در مسیر هر جایی می تونه fragmentation اتفاق بیفته
تو ipv6 این fragmentation فقط در مبدا مجازه انجام بشه توسط مکانیزم mtu discovery که میاد کوچکترین mtu مسیر رو شناسایی می کنه و پکتی که ارسال می کنه بر اساس این کوچکترین mtu خواهد بود، اگه تو مسیر سایز پکت مون از mtu لینک بیشتر باشه پکت drop میشه.
این کار performance اینترفیس رو بسیار کاهش میده به خاطر همین بهتره همچین اتفاقی نیفته یعنی ما کاری کنیم که چیزی که تحویل لایه ip میشه با اضافه شدن هدر ip از mtu اینترفیس و کل مسیر بیشتر نشه در غیر این صورت باید توسط اون دیوایس میانی یا در مبدا fragmentation بشه و در مقصد reassemble بشه که این کار performance اون دیوایس میانی یا مبدا بسته به هر کدوم رو کاهش میده.
این تیکه ها در مقصد چجوری تبدیل به دیتای اصلی میشن، توسط فیلد sequence number که تو هدر tcp وجود داره.
پس پروتکل tcp یکی از کاراش اینکه دیتاهای بزرگ رو برامون segmentation می کنه

 

 

BY shafagh