2009-09-18 3 views
0

주어진 서브넷의 모든 호스트에 대한 mac 주소를 가져 오려고합니다. 지금까지 관련된 모든 ips에 ping을 실행하여 arp 테이블을 강제로 업데이트합니다. 그 후 나는 ARP 테이블을 쿼리하고 모든 것이 잘된다.iPhone 및 arp 테이블

문제는 업데이트 속도를 향상시키는 방법입니다. 핑 65000 주소는 iPhone 3GS에서 약 15 분이 걸립니다. 반응이 일어나면 기다리지 않아도. 그럴거야. 내 핑 코드에 문제가 느려지는 버그가있을 수 있지만 지금까지는 찾을 수 없습니다.

내 질문 :
arp 테이블을 업데이트하는 데 더 빠른 네트워크 작업이 있습니까?

답변

0

현재 서브넷에서 멀티 캐스트로 뭔가를 할 수는 없지만 인터페이스에서 수신 대기하면 모든 mac 주소를 찾을 수 있도록 ACK nowlegements를 생성하는 것이 좋습니다.

+0

브로드 캐스트 주소를 핑 (ping)해도 ACKnowledge가 생성되지 않습니까? 여기서 문제는 ping에 응답하지 않는 호스트를 잡는 것입니다. – Monobono

1

내 생각에 가장 빠른 방법은 기존 ARP 테이블을 쿼리하는 것입니다. 예를 들어 서브넷의 DHCP 컨트롤러에있는 테이블 SNMP.

+0

그럴 수도 있습니다. 하지만 DHCP 컨트롤러가 없으면 어떻게 될까요? 그런데 iPhone 용 스택을 알고 있습니까? – Monobono

+0

DHCP 컨트롤러가없는 경우 서브넷의 게이트웨이 (즉, 서브넷의 호스트가 나머지 인터넷에 연결하는 데 사용하는 노드)는 게이트웨이에 최신 ARP 테이블이 필요하지 않습니까? – ChrisW

+0

"그런데 iPhone 용 스택을 알고 있습니까?" - 모르겠어. 또한 권한이있는 서브넷 (호스트가 SNMP를 지원하고 사용자가 자격 증명을 사용하는 경우)에서만 작동합니다. 이러한 경우에는 전화기가 말할 수있는 호스트에 자신의 소프트웨어를 설치할 수도 있습니다 (SNMP가 아닌 방법으로 ARP 테이블을 쿼리 할 수 ​​있음). – ChrisW