2010-12-30 3 views
1

내 컴퓨터에서 장치를 성공적으로 찾은 다음 pcap_open (...)을 호출하면 내 컴퓨터에서 들어오고 나가는 패킷 만 전송됩니까? 네트워크상의 다른 계산은 어떨까요? 아직 전송되지 않은 패킷을 보여 줍니까?pcap 함수 : pcap_open() 질문

답변

3

짧은 답변 :

의존, 의존, 아니요.

긴 답변 :

당신은 질문에 대답하기 전에 몇 가지를 이해할 필요가있다. 먼저, 이더넷 네트워크에서 전송되는 모든 패킷에는 소스 및 대상 주소를 지정하는 이더넷 헤더가 포함되어 있어야합니다. 이 주소는 이더넷 네트워크의 송신자와 수신자의 이더넷 카드에 속합니다. IP 주소와는 다릅니다. (이더넷 주소를 찾는 방법은 주소 확인 프로토콜 (ARP)을 참조하십시오).

컴퓨터가 이더넷 헤더의 대상 주소가 자신의 이더넷 카드의 주소와 일치하는 패킷을 수신하면 처리합니다. 그렇지 않으면 폐기합니다.

예를 들어 컴퓨터를 허브에 연결 한 경우 한 컴퓨터에서 다른 컴퓨터로 패킷을 보내면 허브는 연결된 모든 링크에서 수신 한 모든 패킷을 브로드 캐스팅하기 때문에 모든 컴퓨터에서 해당 패킷을 볼 수 있습니다 . 오직 하나의 컴퓨터 만 실제로 패킷을 처리 할 것이고, 그것은 이더넷 헤더에 지정된 컴퓨터입니다.

이제 pcap로 이동하십시오. 무차별 모드 또는 무차별 모드로 패킷을 캡쳐 할 수 있습니다 (더 좋은 용어가 있는지는 확실하지 않음). 인터페이스가 무차별 모드 인 경우, pcap는 인터페이스에서 수신 된 모든 패킷을 표시합니다. 패킷이 해당 인터페이스의 대상과 일치하지 않습니다. 비 promiscuous 모드에서는 목적지 필드가 인터페이스 주소와 일치하는 패킷 만 표시합니다.

질문에 대한 답변을드립니다.

항상 컴퓨터에서 보낸 패킷을 볼 수 있으며 컴퓨터에만 지정된 패킷을 항상 볼 수 있습니다. 네트워크에 따라 다른 컴퓨터에서 보낸 패킷을 볼 수 있습니다. 네트워크에 따라 네트워크의 다른 컴퓨터로 보낸 패킷을 볼 수 있습니다. 예를 들어, WiFi 인터페이스에서 패킷을 캡처하는 경우 다른 컴퓨터에서 전송되고 전송 된 패킷을 볼 수 있습니다 (공중에서 브로드 캐스트되고 범위 내의 모든 사용자가 볼 수 있기 때문입니다). 수신하는 모든 패킷을 브로드 캐스트하는 허브의 경우와 동일합니다. 어댑터가 무차별 모드 인 경우 pcap에 표시되므로 다른 컴퓨터와주고받는 트래픽을 볼 수 있습니다. 반면에 컴퓨터가 스위치 또는 라우터에 연결되어 있으면 스위치/라우터가 다른 컴퓨터의 트래픽을 보내지 않으므로 트래픽 만 표시됩니다 (허브/스위치/라우터에서 이유를 확인). 마지막으로, 아직 보냈지 않은 패킷은 pcap에서 볼 수 있기 전에 인터페이스 밖으로 보내야하기 때문에 표시되지 않습니다.

+0

답변 해 주셔서 감사합니다. – TheFuzz

+0

내 컴퓨터가 스위치에 연결되어 있으므로 다른 네트워크 트래픽이 표시되지 않지만 원격 pcap_open (...)은 무엇입니까? – TheFuzz

+0

원격 pcap_open()으로 무엇을 의미합니까? 어쨌든 어떤 유형의 네트워크 트래픽을 캡처하려고합니까? – Neal