🧐 وقتی میدونیم IP طرف چیه، سیستم چطور میفهمه باید packet رو دقیقاً به کدوم کارت شبکه بفرسته؟
تا حالا شده فکر کنی وقتی میخوای یه packet رو توی شبکه محلی بفرستی، صرفاً داشتن IP طرف مقابل کافیه؟ در واقع IP فقط یه Logical Address هست و برای اینکه دادهها واقعاً روی سیم یا Wi-Fi جابجا بشن، سیستم باید بدونه MAC address اون دستگاه چیه. اینجاست که پروتکل ARP وارد بازی میشه تا این پل ارتباطی بین L3 و L2 رو بسازه.
وقتی kernel میخواد یه packet رو بفرسته و MAC مقصد رو نداره، یه ARP Request میفرسته که به صورت broadcast هست؛ یعنی به همه دستگاههای توی اون subnet اعلام میکنه که «هر کسی این IP رو داره، MAC address خودش رو به من بگه». تمام دستگاهها این درخواست رو میبینن، اما فقط اون دستگاهی که IP مورد نظر با مالش یکی باشه، با یه ARP Reply جواب میده و MAC خودش رو میفرسته. بعد از این، سیستم این mapping رو توی یه جدول موقتی به اسم ARP cache ذخیره میکنه تا برای packetهای بعدی مجبور نباشه دوباره کل شبکه رو صدا بزنه.
این مکانیزم باعث میشه ترافیک شبکه بیخودی اشغال نشه، اما چون ARP هیچ سیستم احراز هویتی نداره، به شدت در برابر حملاتی مثل ARP Spoofing حساسه. توی این حالت، یه مهاجم میتونه با فرستادن جوابهای دروغین، ARP cache دستگاههای دیگه رو مسموم کنه و ترافیک رو به سمت خودش منحرف کنه.
❓ نظرتون راجب این پست چیه ؟ برامون تو کامنتا بنویسین :)@things_to_know_channel