مقالات شبکه

در این صفحه، مقالات مرتبط با IPv4، LLC، MTU، Payload، Flags، CRC، FCS، IPv6، NAT و PAT گردآوری شده است.

IPv4 و LLC: MTU، Payload و Flags

باشه، بیایم با دقت به جزئیات IPv4 و LLC بپردازیم و MTU و Payload و Flag ها را بررسی کنیم. من مرحله به مرحله توضیح می‌دهم:

۱. IPv4 Header

هدر IPv4 شامل فیلدهای زیر است:

فیلداندازهتوضیح
Version4 بیتنسخه پروتکل (برای IPv4 مقدار 4)
IHL (Internet Header Length)4 بیتطول هدر IPv4 به واحد 32 بیتی (می‌تواند ≥ 5 باشد)
DSCP/ECN8 بیتQuality of Service و Congestion Notification
Total Length16 بیتطول کل بسته IPv4 به بایت (هدر + Payload)
Identification16 بیتشناسه بسته برای بازسازی در صورت Fragmentation
Flags3 بیتکنترل Fragmentation (شرح پایین)
Fragment Offset13 بیتمحل این Fragment نسبت به بسته اصلی
TTL (Time To Live)8 بیتمحدودیت تعداد hops برای جلوگیری از Loop
Protocol8 بیتپروتکل لایه بالاتر (TCP, UDP, ICMP)
Header Checksum16 بیتبررسی صحت هدر
Source IP Address32 بیتآدرس مبدا
Destination IP Address32 بیتآدرس مقصد
Options + Paddingمتغیراختیاری برای کنترل بسته

شماتیک‌های دقیق ساختار هدر IPv4 با تمام فیلدها

Flags در IPv4 (۳ بیت)

Bit 0: Reserved → همیشه 0.

Bit 1: DF (Don't Fragment) → اگر 1 باشد، بسته نباید Fragment شود.

Bit 2: MF (More Fragments) → اگر 1 باشد، Fragment بعدی وجود دارد؛ اگر 0 باشد، Fragment آخر است.

کارکرد مثال: وقتی یک بسته بزرگ‌تر از MTU شبکه است، اگر DF=1 باشد، بسته Drop می‌شود و ICMP “Fragmentation Needed” برگشت داده می‌شود. MF=1 برای تمام Fragmentها به جز آخرین یکی است، MF=0 یعنی Fragment آخر.

فرآیند Fragmentation در IPv4 با نقش Flags (DF و MF)

MTU و Payload در IPv4

MTU (Maximum Transmission Unit): حداکثر اندازه‌ای که یک بسته می‌تواند در یک شبکه منتقل شود. اگر بسته بزرگ‌تر از MTU باشد، به Fragment تقسیم می‌شود مگر اینکه DF=1 باشد.

Payload: داده واقعی لایه بالاتر (مثلاً TCP segment یا UDP datagram) که بعد از هدر IPv4 قرار می‌گیرد. اندازه Payload = Total Length − Header Length

۲. LLC (Logical Link Control) Trailer/Header)

LLC مربوط به لایه Data Link (Layer 2) در استاندارد IEEE 802.2 است. در Ethernet معمولاً LLC قبل از Trailer CRC (FCS) می‌آید. ساختار اصلی LLC:

فیلداندازهتوضیح
DSAP (Destination Service Access Point)1 بایتمشخص‌کننده مقصد منطقی در لایه شبکه
SSAP (Source Service Access Point)1 بایتمشخص‌کننده منبع منطقی
Control1 یا 2 بایتنوع فریم (Information, Supervisory, Unnumbered) و شماره Sequence

Control Field در LLC

I-frame (Information) → شامل شماره Sequence برای ارسال/دریافت Reliable

S-frame (Supervisory) → کنترل تایید دریافت، درخواست Retransmit

U-frame (Unnumbered) → فرمان‌ها و مدیریت ارتباط

Payload و MTU در LLC

Payload: داده واقعی که از لایه بالاتر (IP, ARP) آمده است.

MTU: در Ethernet معمولاً 1500 بایت (Payload IP داخل Ethernet Frame نمی‌تواند بزرگ‌تر باشد).

Trailer اصلی در Ethernet: FCS (Frame Check Sequence) برای بررسی خطا.

ساختار کامل فریم Ethernet با LLC، Payload، IPv4 داخل آن و FCS

جمع‌بندی Flag ها

پروتکلFlagعملکرد
IPv4DFجلوگیری از Fragment شدن بسته
IPv4MFمشخص کردن اینکه Fragment بعدی وجود دارد یا این آخرین Fragment است
LLCSequence/Control bitsمدیریت ارسال Reliable، Ack/Nak، نوع فریم

CRC و FCS: صحت‌سنجی داده‌ها

باشه، بیایم به‌طور جامع و دقیق بررسی کنیم که CRC، FCS (که در Ethernet به کار می‌رود) و عملکرد آنها در صحت‌سنجی داده‌ها چگونه هستند و چه مفهومی دارند.

۱. CRC – Cyclic Redundancy Check

CRC یک الگوریتم ریاضی است که برای تشخیص خطاهای انتقال داده استفاده می‌شود. اساس آن عملیات تقسیم بیت‌بینی (binary division) با یک چندجمله‌ای (polynomial) ثابت است.

مراحل عملکرد CRC:

  1. داده اصلی (Data) را به یک رشته بیتی در نظر می‌گیریم.
  2. یک Polynomial Generator از پیش تعریف شده (مثلاً برای Ethernet 32 بیتی: 0x04C11DB7) انتخاب می‌شود.
  3. داده را درجه‌بندی می‌کنیم و با Polynomial تقسیم بیت به بیت می‌کنیم (mod 2 XOR، بدون carry).
  4. باقی‌مانده تقسیم، CRC نامیده می‌شود.
  5. CRC به انتهای داده افزوده می‌شود و ارسال می‌شود.

مثال ساده (تئوری):

داده = 1101011011
Polynomial = 1011
عملیات تقسیم XOR bitwise انجام می‌شود، باقی‌مانده = CRC = 100
داده ارسال = 1101011011100

کاربرد CRC: شناسایی خطاهای تک بیت، چند بیت، burst errors در پروتکل‌های شبکه و ذخیره‌سازی داده‌ها (Ethernet, PPP, SATA, USB)

محاسبه گام به گام CRC با عملیات XOR و تقسیم چندجمله‌ای

۲. FCS – Frame Check Sequence

FCS در Ethernet، PPP و دیگر پروتکل‌ها معمولاً پیاده‌سازی CRC است.

در Ethernet II، فریم شامل: [Preamble][Destination MAC][Source MAC][EtherType][Payload][FCS]

FCS (4 bytes) در انتهای فریم قرار دارد و حاصل CRC-32 از همه فیلدها قبل از FCS است.

مقصد هنگام دریافت فریم، داده دریافتی را دوباره CRC می‌کند و با FCS مقایسه می‌کند. اگر برابر بود → داده صحیح است اگر نابرابر بود → خطا رخ داده → فریم Drop می‌شود

فرآیند محاسبه و بررسی FCS (CRC-32) در فریم Ethernet

۳. نحوه کنترل صحت سنجی با CRC/FCS

در Sender (فرستنده):

  1. داده آماده ارسال می‌شود.
  2. CRC محاسبه و به انتهای داده اضافه می‌شود.
  3. فریم ارسال می‌شود.

در Receiver (گیرنده):

  1. داده + CRC دریافت می‌شود.
  2. دوباره CRC روی داده محاسبه می‌شود.
  3. نتیجه با CRC دریافت شده مقایسه می‌شود: مساوی → درست نامساوی → خطا

توضیح ریاضی ساده: فرض کن داده = D(x)، CRC = R(x)، polynomial = G(x) در Sender: T(x) = D(x)*x^r + R(x) در Receiver: T(x) mod G(x) = 0 → داده صحیح است در صورت تغییر یک یا چند بیت، باقی‌مانده صفر نخواهد شد → خطا شناسایی می‌شود

۴. نکات مهم

CRC و FCS تشخیص خطا هستند، اصلاح خطا نه. (برای اصلاح، باید از FEC استفاده کرد)

قدرت شناسایی: CRC-16: خطاهای تک بیت و burst ≤ 16 بیت را شناسایی می‌کند CRC-32: خطاهای burst ≤ 32 بیت را شناسایی می‌کند، تقریباً همه خطاهای تصادفی را تشخیص می‌دهد

سرعت اجرای CRC بسیار بالاست چون با XOR و شیفت بیت انجام می‌شود

جمع‌بندی:

مفهوماندازهعملکرد
CRCبیت یا چند بیتمحاسبه ریاضی با polynomial برای تشخیص خطا
FCS4 بایت (Ethernet)CRC که به انتهای فریم اضافه شده و صحت داده را بررسی می‌کند
صحت‌سنجیگیرنده دوباره CRC می‌گیرد و با FCS مقایسه می‌کند

IPv6: Header، MTU، Payload، Flags و صحت‌سنجی

باشه، بیایم IPv6 را با همان جزئیات IPv4 بررسی کنیم و ببینیم Header، MTU، Payload، Flagها و کنترل صحت چگونه کار می‌کنند و چه تفاوت‌هایی با IPv4 دارند.

۱. IPv6 Header

هدر IPv6 ثابت و ساده‌تر از IPv4 است و بیشتر برای بهینه‌سازی Forwarding و کاهش پیچیدگی طراحی شده است. اندازه هدر: ۴۰ بایت ثابت.

فیلداندازهتوضیح
Version4 بیتنسخه پروتکل (IPv6 = 6)
Traffic Class8 بیتمشابه DSCP/ECN در IPv4، QoS و Congestion Notification
Flow Label20 بیتبرچسب جریان برای تشخیص بسته‌های مربوط به یک جریان خاص
Payload Length16 بیتطول داده‌های بعد از هدر (Payload) به بایت، حداکثر 65535
Next Header8 بیتمشخص‌کننده پروتکل بالاتر یا نوع هدر بعدی (TCP, UDP, ICMPv6، یا Extension Header)
Hop Limit8 بیتمشابه TTL در IPv4، تعداد hopهای مجاز
Source Address128 بیتآدرس مبدا
Destination Address128 بیتآدرس مقصد

ساختار دقیق هدر IPv6

ویژگی‌های مهم IPv6: Fragmentation دیگر توسط روتر انجام نمی‌شود. فقط فرستنده می‌تواند Fragment ایجاد کند. Flagهای Fragmentation در هدر اصلی وجود ندارد؛ اگر Fragment باشد، در Extension Header مخصوص Fragment قرار می‌گیرد.

۲. Fragment Extension Header (IPv6)

اگر بسته بزرگ‌تر از MTU باشد، فرستنده باید آن را Fragment کند و هدر Fragment به شکل زیر است:

فیلداندازهتوضیح
Next Header8 بیتنوع پروتکل بعدی
Reserved8 بیتصفر، رزرو شده
Fragment Offset13 بیتموقعیت Fragment نسبت به داده اصلی
Res2 بیترزرو شده، صفر
M Flag1 بیتMore Fragments: 1 = Fragment بعدی هست، 0 = آخرین Fragment
Identification32 بیتشناسه بسته اصلی برای بازسازی

M Flag مشابه MF در IPv4 است. دیگر DF (Don't Fragment) وجود ندارد، چون روترها Fragment نمی‌کنند.

Extension Header Fragment در IPv6 و فرآیند Fragmentation

۳. MTU و Payload در IPv6

MTU لینک فیزیکی: حداقل 1280 بایت در IPv6، اگر کمتر باشد، فرستنده باید Fragment کند.

Payload Length: طول داده بعد از هدر اصلی، شامل تمام Extension Headerها و داده لایه بالاتر (TCP/UDP/ICMPv6). حداکثر طول Payload بدون Fragment Extension: 65535 بایت. با Jumbo Payload Option می‌توان تا 4,294,967,295 بایت ارسال کرد.

۴. صحت سنجی در IPv6

Header Checksum حذف شده است! در IPv6 چک‌سام هدر وجود ندارد. دلیل: لایه‌های پایین‌تر (Ethernet, PPP, FCS) مسئول تشخیص خطا هستند TCP/UDP/ICMPv6 هر کدام checksum مخصوص خود دارند

بنابراین بررسی صحت داده در IPv6: 1. لایه Data Link → FCS/CRC (Ethernet) 2. لایه Transport → TCP/UDP/ICMPv6 checksum

۵. جمع‌بندی تفاوت IPv4 و IPv6

ویژگیIPv4IPv6
Header Lengthمتغیر (20–60 بایت)ثابت 40 بایت
Checksumهدر IPv4 داردندارد
Fragmentationروتر و فرستندهفقط فرستنده با Extension Header
FlagsDF, MFفقط M در Fragment Header
MTU حداقل68 بایت1280 بایت
PayloadTotal Length – Header LengthPayload Length فیلد جداگانه، حداکثر 65535

مقایسه جامع هدرها و ویژگی‌های IPv4 و IPv6


NAT و PAT در IPv4 و IPv6

باشه، بیایم NAT و PAT در IPv4 و وضعیت آنها در IPv6 را به‌طور دقیق و کاربردی بررسی کنیم.

۱. NAT – Network Address Translation (IPv4)

تعریف: NAT یک تکنیک در IPv4 است که آدرس‌های خصوصی (Private IP) را به آدرس‌های عمومی (Public IP) ترجمه می‌کند تا امکان دسترسی به اینترنت فراهم شود و تعداد آدرس‌های IPv4 محدود بهینه شود.

انواع NAT:

  1. Static NAT (یک‌به‌یک): یک آدرس خصوصی → یک آدرس عمومی ثابت مثال: 192.168.1.10 → 203.0.113.10 کاربرد: وقتی یک سرور داخلی نیاز دارد همیشه با یک آدرس عمومی ثابت در اینترنت دیده شود.
  2. Dynamic NAT (پویا): آدرس‌های خصوصی به مجموعه‌ای از آدرس‌های عمومی اختصاص داده می‌شوند، به‌صورت پویا و موقت محدود به تعداد آدرس‌های عمومی موجود
  3. PAT – Port Address Translation (NAT Overload): همه میزبان‌های داخلی می‌توانند با یک آدرس عمومی مشترک از اینترنت استفاده کنند تفاوت: ترجمه بر اساس پورت TCP/UDP انجام می‌شود مثال: 192.168.1.2:1234 → 203.0.113.1:40001 192.168.1.3:5678 → 203.0.113.1:40002 کاربرد: صرفه‌جویی در آدرس‌های IPv4 و دسترسی همزمان چندین میزبان به اینترنت با یک IP

مزایا و کاربرد NAT/PAT در IPv4: صرفه‌جویی در IPv4 Public IP افزایش امنیت شبکه داخلی: آدرس‌های خصوصی مستقیم در اینترنت دیده نمی‌شوند تسهیل تغییر آدرس شبکه داخلی بدون تغییر IPهای اینترنتی

فرآیند NAT و PAT (Overload) در IPv4 با ترجمه آدرس و پورت

۲. NAT و PAT در IPv6

تفاوت کلیدی با IPv4: IPv6 آدرس‌های کافی (128 بیت) دارد → نیاز به NAT/PAT به‌طور کلی از بین رفته است طراحی IPv6 بر اساس End-to-End Connectivity است، بنابراین میزبان‌ها معمولاً با آدرس جهانی IPv6 خود مستقیم قابل دسترسی هستند

موارد جایگزین NAT در IPv6: Privacy Extensions: آدرس‌های موقت برای حفظ حریم خصوصی NPTv6 (Network Prefix Translation): معادل بسیار محدود NAT statcic ترجمه Prefix شبکه (نه آدرس کامل) استفاده برای تغییر ساختار شبکه بدون تغییر آدرس‌ها در میزبان‌ها مثال: شرکت می‌تواند شبکه داخلی را از 2001:db8:100::/48 به 2001:db8:200::/48 ترجمه کند

PAT در IPv6: وجود ندارد و معمولاً استفاده نمی‌شود به جای آن از Firewall و Security Policies برای کنترل دسترسی استفاده می‌شود

مقایسه اتصال End-to-End در IPv6 با NAT در IPv4

۳. جمع‌بندی

ویژگیIPv4IPv6
NATلازم برای صرفه‌جویی آدرس، امنیتعموماً لازم نیست
PATبرای چندین میزبان روی یک IPحذف شده، استفاده نمی‌شود
End-to-End Connectivityمحدودبرقرار، هر میزبان آدرس Public دارد
امنیت داخلیNAT نوعی حفاظت غیرمستقیمFirewall و Policies
استفاده عملیشبکه‌های خانگی و شرکتیشبکه‌های جدید، IoT، شبکه‌های سازمانی بدون NAT