זה פרוטוקול של הLink Layer שמאפשר לכל מחשב לגבש טבלה של כל כרטיסי הרשת שהוא מחובר אליהם ישירות ברשת מקומית. אם נרצה לדבר עם מחשב שנמצא איתי באותה הרשת עליי לדעת את כתובת הIP של המחשב, ואת כתובת הMAC שלו. הראוטר יודע לאיזה האם כתובת הMAC שייכת לאחד המכשירים שמחוברים אליו ברשת מקומית או שעליו להעביר את הפקטה לכתובת MAC של הראוטר הבא במסלול ליעד (דרך שכבת הקו). לכן יש חשיבות לקשר בין MAC לבין IP.
פרוטוקול ARP רלוונטי רק ב שכבת הקו , כלומר רק ברשת המקומית. לכן יש צורך של המחשב לדעת מי נמצא איתו ברשת המקומית. הזיהוי הזה מתבצע באמצעות הצמדה של כתובת MAC לכתובת IP של המחשבים שנמצאים איתו באותה רשת.
הפרוטוקול עובד באופן הבא:
א) מחשב A שולח ARP Query לכל הישויות ברשת המקומית- השאילתה היא מהצורה למי יש את כתובת הMAC המתאימה לDest IP ששמור אצלי בFrame? . הוא עושה זאת על ידי שליחת השאילתה לכתובת הMAC מהצורה 255:255:255:255:255:255 שהיא כתובת Broadcast כלומר זה ישלח את ההודעה לכל המחשבים השמורים ברשת המקומית. בדומה לSwitch Table , רק המחשב שמזהה את כתובת ה IP שלו יגיב.
ב) לאחר התגובה של מחשב A ממחשב B , הוא שומר את המידע ב ARP table שנמצא אצלו (לכל מחשב ברשת המקומית יש טבלה משלו) שמכיל את העמודות IP,MAC,Port . פעם הבאה הוא יוודא בטבלה האם כתובת הMAC שמורה בהינתן הDest IP וככה יוותר על תהליך הBroadcast.



כאשר בקשת ARP נשלחת לכל הישויות ברשת המקומית, במטרה למפות בין כתובת לוגית לכתובת פיזית, בתגובה, המחשב שכתובת ה IP בבקשה שייכת לו, מחזירת את כתובת הMAC שלו. בגלל שפקטת ARP עוברת רק בשכבת הקו, אז גם הבקשות וגם התגובות של פקטות כאלה נעטפות רק ב header אחד

כשמחשב רוצה לשלוח מידע למחשב אחר ברשת הוא קודם כל שואל את עצמו, ״האם אני צריך לשלוח את המידע למחשב ברשת המקומית שלי, הוא עושה זאת באמצעות השוואת הקידומת של כתובת הIP שלו לכתובת הIP של היעד, ככה הוא יודע האם היעד שייך לרשת המקומית (למחשבים ברשת מקומית יש את אותה הקידומת). אם הוא מבין שהוא צריך להעביר את המידע ברשת המקומית הוא משתמש ב ARP כדי לקבל מידע על MAC היעד. אם היעד נמצא מחוץ לרשת יש צורך בשכבת הערוץ כדי לעבור בין התחנות ולשם כך יש צורך להעביר את המידע בין הראוטרים הסמוכים ולכן המחשב גם יכול להשתמש ב ARP כדי להשיג את הכתובת MAC של הראוטר ולהעביר את המידע אליה (במקרה הפשוט יש ראוטר אחד ברשת מקומית ולכן אפשר גם להעביר את המידע לdefault gateway).


