Linux에서 datalink 원시 소켓 프로그래밍을 배우고 있는데, 도움이되는 examples을 발견했습니다. 나는 icmp4_ll.c를 컴파일하고 같은 LAN에있는 다른 컴퓨터에 ICMP 패킷을 보내는데 사용했다. 대상 컴퓨터에서 응답을받을 수 있습니다. 그러나 로컬 컴퓨터로 ICMP 패킷을 보낼 때, 원본 및 대상 이더넷 MAC 및 IP 주소를 eth0의 MAC 및 IP 주소로 설정하면 eth0 또는 lo에서 ICMP 응답을받을 수 없습니다. 인터페이스 (Wireshark에서 eth0을 통해 전송 된 ICMP 요청 만 알았지 만 모든 인터페이스에서는 ICMP 응답이 없습니다.) ICMP 요청 메시지가 올바르게 구성되어 있다고 생각합니다. 그렇지 않으면 원격 대상이 응답하지 않습니다. 그러나 OS가 왜 그 요청에 답장을 보내지 않는지 나는 모른다. 도움이나 힌트를 주시면 감사하겠습니다. 는 ICMP 메시지로컬 인터페이스를 통해 datalink 원시 소켓을 사용하여 ICMP를 보내고 받으십시오.
0
A
답변
0
RFC 792 정의 특수 조건 :
없음 ICMP 오류 메시지가 무한 반복을 피하기 위해 ICMP 오류 메시지에 대한 응답으로 전송됩니다.
조각화 된 IP 데이터 그램의 경우 조각화 된 0 (첫 번째 조각)의 오류에 대해서만 ICMP 메시지가 전송됩니다.
브로드 캐스트 또는 멀티 캐스트 주소로 지정된 데이터 그램에 대한 응답으로 ICMP 오류 메시지가 보내지지 않습니다.
ICMP 오류 메시지는 링크 계층 브로드 캐스트로 전송 된 데이터 그램에 대한 응답으로 절대로 전송되지 않습니다.
ICMP 에러 메시지는 그 소스 주소를 고유 한 호스트를 표시하지 않는 데이터 그램에 대한 응답으로 전송되지 않습니다 (주소 가 제로가 될 수없는 소스, 루프백 주소, 브로드 캐스트 주소 또는 멀티 캐스트 주소).
ICMP 오류 메시지는 어떤 종류의 IGMP 메시지에 대해서도 보내지 않습니다. 알 수없는 형식의 ICMP 메시지를 받으면 반드시 을 버려야합니다.
라우터는 거의 항상 ICMP 메시지를 생성하지만이 대상 호스트에 올 때, ICMP 메시지의 수는 구현에 의존 생성.
관련 문제
- 1. 소켓을 통해 데이터를 보내고 받으십시오.
- 2. Delphi 2010에서 소켓을 사용하여 텍스트를 보내고 받으십시오.
- 3. tcp 소켓을 사용하여 이미지를 보내고 받으십시오.
- 4. 원시 소켓을 사용하여 HTTP 요청을 보내고 WinPcap
- 5. GameKit을 통해 NSData를 보내고 받으십시오.
- 6. PSTN을 통해 SMS를 보내고 받으십시오
- 7. 소켓 - 보내고 받으십시오
- 8. GKTurnBasedMatch의 초대장을 보내고 받으십시오.
- 9. 웹 페이지에서 UDP를 보내고 받으십시오.
- 10. Java 멀티 캐스트를 보내고 받으십시오
- 11. 원시 소켓을 사용하여 비디오 스트리밍
- 12. Qt를 사용하여 소켓을 통해 이미지를 보내고 java를 사용하여 읽으십시오.
- 13. 데이터 그램 패킷을 보내고 받으십시오
- 14. C에서 icmp를 사용하여 traceroute 구현
- 15. 원시 소켓을 사용하여 로컬 호스트에 ping을 수행하는 방법은 무엇입니까?
- 16. iPhone sdk에서 Twilio를 사용하여 SMS를 보내고 받으십시오.
- 17. 안드로이드에서 Datagramsocket을 동시에 사용하여 보내고 받으십시오. 보내시겠습니까?
- 18. 원시 소켓을 사용할 때 특정 인터페이스를 선택할 수 있습니까?
- 19. 자바 스크립트에서 블롭을 보내고 받으십시오.
- 20. 안드로이드에서 aSmack으로 이미지를 보내고 받으십시오.
- 21. 소켓을 통해 .Net 인터페이스를 마샬링하는 방법은 무엇입니까?
- 22. C 소켓을 통해 원시 바이너리 데이터를 보내시겠습니까?
- 23. 원시 소켓을 통해 전송하기위한 마킹 패킷
- 24. Delphi에서 소켓을 사용하여 버퍼로 텍스트를 보내거나 받으십시오.
- 25. 원시 소켓을 사용할 때 바인딩해야합니까?
- 26. 소켓을 보내고 검색
- 27. Playframework에서 POST 요청을 보내고 받으십시오.
- 28. js를 통해 데이터를 보내고 액션 컨트롤러에서 pdf를 받으십시오.
- 29. 원시 소켓을 사용
- 30. UDP를 통해 Arduino와 iOS 장치 사이에서 문자열을 보내고 받으십시오.
회신을받지 못한 경우 에코 요청이 잘못되었거나 다른 곳에서 회신을 차단하는 것이 있습니다. – nos
나는이 가능성을 생각하고 있었지만 동일한 프로그램을 사용하여 원격 컴퓨터에 ICMP 요청을 보내면 원격 컴퓨터의 응답 양식을 볼 수 있습니다. 프로그램이 로컬 인터페이스에 요청을 보내는 데 사용될 때만 응답이 누락됩니다. – user2975098