ทำไมคำขอ ARP ลำดับที่สองจึงรอจนกว่าการปิงจะปรากฏขึ้น


4

ปัญหานี้ถูกนำเสนอให้ฉันโดยอาจารย์คนหนึ่งของฉันเพราะมันเกิดขึ้นหลังจากเปลี่ยนจากการ์ด 100Mb เป็น Gigabit NIC คำขอ arp ที่สองที่มาจากคอมพิวเตอร์ที่กำลังส่ง Ping (เพื่อส่งการตอบกลับ) จะไม่ถูกส่งจนกว่าหลังจากที่ Ping ได้ผ่านไปแล้ว

ฉันตัดสินใจทำการทดสอบที่บ้านกับ VMs สองสามเครื่องและดูว่าฉันสามารถหาสาเหตุได้หรือไม่

ตัวอย่าง Wireshark Capture

หลังจากการล้างแคช arp บนทั้งสองเครื่อง (arp -d) และส่ง Ping ฉันได้ผลลัพธ์เหมือนกับอาจารย์ของฉัน แต่ฉันไม่สามารถหาสาเหตุได้

ฉันทำ googling แล้วพบใครบางคนที่มีปัญหาคล้ายกันโดยใช้ linux (ฉันใช้ Windows 10) มันพูดอะไรบางอย่างเกี่ยวกับการมีรายการเก่าใน arp table รวมถึงสิ่งที่เรียกว่าโพรบล่าช้าแรก แต่ฉันไม่สามารถทำได้ เพื่อค้นหาข้อมูลใด ๆ เกี่ยวกับสิ่งเหล่านี้สำหรับ Windows

ไม่มีใครรู้ว่าทำไมสิ่งนี้อาจเกิดขึ้น? หรือคำขอ arp ที่สองนั้นมีไว้สำหรับหากไม่พบอุปกรณ์แรก


ใช่มันน่าสนใจ การตอบ ping ถูกทำโดยไม่มี arp เนื่องจากจุดเริ่มต้นอยู่บนเครือข่ายเดียวกันและดังนั้นที่อยู่ mac ตอบกลับอยู่บนแพ็กเก็ตขาเข้า จากนั้นต่อมาก็มี unicast arp (แทนที่จะออกอากาศแบบดั้งเดิม) ดังนั้นอุปกรณ์ปลายทางจึงมีรายการ arp อยู่แล้ว (แยกจาก ping) และดูเหมือนว่ามันตรวจสอบความถูกต้องแล้ว บางทีรายการ arp มีการทำเครื่องหมายเพื่อค้างเร็วขึ้นเมื่อรวบรวมผ่านวิธีนี้
พอล

มีอยู่แล้วเพื่อพิสูจน์ว่านี่คือสิ่งที่เกิดขึ้น? หรือวิธีใดที่จะดูว่ารายการนั้นค้างบน Windows นานเท่าใด มันเหมือนกับ Linux บน windows หรือไม่?
SkyParrillo

ฉันแค่คิดว่า ตามคำตอบของ Appleoddity ด้านล่างปลายทางกำลังเติมข้อมูลตาราง arp แต่โปรดทราบว่ามันจะถามที่อยู่ mac โดยเฉพาะแทนที่จะออกอากาศดังนั้นเลเยอร์ 2 จะต้องเก็บ mac ไว้จากการ ping ฉันไม่ทราบว่าการทำงานด้านในของสแต็ก Windows จะแน่นอนดังนั้นความคิดเห็นแทนที่จะตอบ
พอล

คำตอบ:


2

สิ่งนี้ดูเหมือนจะเป็นสิ่งที่ Bruce Hartpence เรียกว่า“ Return ARP” ดังที่อธิบายไว้ในข้อความที่ตัดตอนมานี้จาก Packet Guide to Core Network Protocols

การสนทนาที่แสดงในรูปที่ 4-12 แสดงแง่มุมที่สำคัญอีกประการของ ARP— เฉพาะโฮสต์ที่สร้างการสนทนา (สร้างคำขอ ARP) จะวางรายการสำหรับโฮสต์ปลายทางในตาราง ARP ท้องถิ่น นั่นคือสถานีอื่น ๆ ที่ได้ยินการแลกเปลี่ยนแม้ว่าพวกเขาจะได้รับคำขอ ARP จะไม่เพิ่มสถานีเหล่านี้ในตาราง ARP ของตัวเอง อย่างไรก็ตามโฮสต์จำนวนมาก (โดยเฉพาะเราเตอร์) มีความก้าวร้าวเมื่อพูดถึงตารางของพวกเขาและเมื่อได้ยินการรับส่งข้อมูล ARP หรือมีส่วนร่วมในข้อความ ARP ในภายหลังจะสร้างคำขอ ARP ของตนเองเพื่อเติมตารางของตน

คำตอบสั้น ๆ โฮสต์ปลายทางกำลังเติมข้อมูลตาราง ARP ของตัวเองทันทีที่รู้เกี่ยวกับโฮสต์อื่น


นี่จะอธิบายได้ไหมว่าทำไมจึงเคยมีคำขอ ARP สองคำขอในตอนเริ่มต้นของ ping ก่อนที่ NIC จะถูกเปลี่ยนไป?
SkyParrillo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.