پروتکل تفکیک آدرس :
(ARP : (Address Resolution Protocol، وظیفه بدست آوردن (Mac Address) را با داشتن (IP Address) یک وسیله دارد. IP یک شناسه منطقی است و در لایه اینترنت کار می کند. بسته هایIP خود در Frame های لایه فیزیکی قرار می گیرند و سپس درون شبکه ارسال می شوند. اما باید به این نکته توجه کرد که دستگاه های درون شبکه برای ارتباط با یک دیگر نیازمند دانستن آدرس سخت افزاری (Mac Address) یکدیگر هستند. این در حالیست که ما از کامپیوتر ها و دستگاه هایی مانند سوییچ، مودم، روتر، پرینتر و …. که در شبکه با آن ها کار می کنیم فقطIP آن ها را می دانیم در حالی که در عمل به شناسه سخت افزاری یا Mac Address آن ها نیاز است! در صورتی سیستم با دانستن IP بخواهد با یک سیستم ارتباط برقرار کند بطوریکه در یک شبکه داخلی قرار داشته باشد باید حتما address Mac آن سیستم را بداند. برای این منظور با استفاده از پروتکل ARP سعی در تشخیص IP آن سیستم را دارد برای این منظور از سیستم مقابل سوال میکند (در اینجا فرض می کنیم ip فرستنده 192.168.3.3 و آدرس گیرنده 192.168.3.4 باشد) حال اگر ما بخواهیم دستور ping 192.168.3.4 را از سیستم 192.168.3.3 اجرا کنیم سیستم 192.168.3.3 در صورت نداشتن آدرس فیزیکی (mac address) سیستم 192.168.3.4 یک پیام به صورت broadcast در کل شبکه پخش می کند مبنی بر اینکه چه کسی 192.168.3.4 است به من بگوید من 192.168.3.3 هستم (who-has 192.168.3.4 tell 192.168.3.3) سیستمی که این IP مورد نظر برای ارتباط ما را دارد با توجه به درخواست ما، Mac خود را به سیستم ما اعلام می کند (reply 192.168.3.4 is-at 88:ae:1d:34:1d:7c) و سیستم ما این Mac را در جدولی با نام ARP Table ذخیره می کند. حال در صورتی که سیستم ما تشخیص دهد که سیستم موردنظر با سیستم ما در یک شبکه قرار ندارند (یعنی subnetmask متفاوت دارند) ابتدا Route Table خود را می بیند و در صورتی که در این جدول موردی برای رسیدن به این IP موجود باشد بررسی می کند که برای ارتباط با این IP باید به سمت کدام روتر اطلاعات را بفرستد سپس با استفاده از همان مراحل گفته شده mac آدرس روتر مورد نظر را با توجه به داشتن IP آن پیدا می کند و در Destination mac address آدرس مربوط به روتر و در بخش destination IP address مقصد سیستمی که می خواهد با آن ارتباط داشته باشد را قرار می دهد.
دستورات arp در ویندوز :
برای مفهوم تر شدن موضوع بالا می توانید از ابزاری که با نام arp در ویندوز موجود است استفاده نمایید به نام ARP با زدن این دستور در خط فرمان (Command Prompt ) دستورات این موضوع را می توانید ببینید و راهنمای کوتاهی در رابطه با آن ببینید .برای این کار باید به ادرس Start -> Run -> CMD بروید و دستور خود را تایپ نمائید.
در صورتی که بخواهید این جدول را برای شما نمایش داده شود باید از دستور زیر استفاده کنید .
ARP -a
در صورتی که در ۱۲۰ ثانیه گذشته ارتباطی با سیستمی نداشته باشید این مورد خالی است.
همانطوری که در بخش قبل هم گفته شد در صورتی که بخواهید با سیستم در رنج مختلف شبکه ارتباط برقرار کنید سیستم پکت ها را به روتر مورد نظر برای این منظور می فرستد و به همین منظور است که شما Mac-Address مربوط به سیستم مقصد را به علت در یک رنج بودن مشاهده نمی کنید و به جای آن mac-Address اینترفیس سمت خودمان در روتر را می بینید.
دستورات arp در لینوکس :
دستور اول :
ip neighbor show
دستور دوم :
arp
کاربرد دستور ping ,arp :
همان طور که در بالا اشاره شده می توان به ip های متصل به سیستم خود مطلع شوید و حالا هر زمان خواستید بدانید که آن ip متصل از چه نوع دستگاهی (کامپیوتر ، پرینتر و …)می باشد باید از روش زیر استفاده نمایئد :
۱) ابتدا یک آی پی را در شبکه خود پینگ کنید .
۲) اگر آن آدرس جواب داد از روی آن مک آدرس دستگاه را بدست آورید .
سپس ۶ رقم اول مک آدرس را در سایت قرار دهید سپس می توانید نوع دستگاه را مشاهده نمائید.
https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries
سپس دکمه جستجو را بزنید تا نوع دستگاه را متوجه شوید که در این مورد یک دستگاه پرینتر اچ پی بود.
فیلدهای ARP:
(Hardware type (2Byte | نوع ادرس سخت افزاری فرستنده و گیرندهاست (همگی یک برای اترنت و حلقه نشانه) |
(Protocol type (2Byte | نوع پروتکل ادرس دهی استفاده شدهاست |
(Hardware Address length (1Byte | تعداد بایت ادرس سخت افزاری فرستنده و گیرندهاست (شامل مقدار ۶ برای اترنت و حلقه نشانه) |
(Protocol Address length (1Byte | تعداد بایت ادرس IP یا به عبارتی ادرس پروتکل است |
(Opcod (2Byte | نوع عملیات پاکت ARP را تعین میکند.(مقدار ۱ برای درخواست ARP ,مقدار۲ برای پاسخ ARP و۳ برای درخواست RARP و۴ برای پاسخ RARP) |
(Sender Hardware Address(6Byte | ادرس اترنت یا سخت افزاری فرستنده |
(Sender IP Address(32 Bit | ادرس IP یا پروتکل مبدا |
(Target Hardware Address(6Byte | ادرس اترنت یا سخت افزار گیرنده |
(Target IP Address(32Bit | ادرس IP یا پروتکل مقصد |
(CheckSum (16bit | الگوریتم تشخیص خطا |