2012-03-28 1 views
1

재생할 pcap 파일이 있습니다. 타임 스탬프를 포함하도록 패킷 페이로드를 다시 쓰고 싶습니다. tcpreplay 또는 tcprewrite으로 어떻게 할 수 있습니까? 기본 옵션이 있습니까? 아니면 직접 구현해야합니까 (tcpreplay 수정)? 나는 잠시 동안이 페이지들을 읽고 있었고 구글도 나를 도왔다. 미리 감사드립니다.TCPREPLAY를 사용하여 패킷 페이로드에 타임 스탬프 추가

추신 : 데이터의 덮어 쓰기가 중요하지 않으므로 패킷의 원래 크기를 수정하고 싶지 않습니다. 유일한 옵션은 패킷 크기를 수정하는 것입니다, 나도 그걸로 잘됩니다.

답변

2

그런 종류의 편집은 tcpreplay/tcprewrite에서 지원하지 않으므로 직접 코드를 작성해야합니다. 패킷 데이터를 손상시키지 않으려면 (좋아하는 것 같군요) tcpedit.c를 편집하면 꽤 쉽습니다.

+0

답장을 보내 주셔서 감사합니다. 잦은 시스템 호출로 인해 포워딩 성능이 크게 저하됩니까? – tartar

+0

그게 달려 있죠 ... 대부분의 시스템에서 gettimeofday()는 매우 비싸지 만, 지난 몇 년 동안 상당히 개선되었습니다. 예를 들어 Linux는 BIOS 호출을 HPET로 전환했는데 훨씬 빠릅니다. memcpy()를 통해 패킷에 4 바이트의 유닉스 에포크 타임 스탬프를 두는 것으로 가정하면 상당히 빠르고 오버 헤드가 적습니다. 더 높은 정확성을 원한다면, 그것은 더 많은 바이트와 더 많은 작업/오버 헤드 일 수 있지만 실제로 구현에 달려 있습니다. 짧게 말하자면, 대부분의 조건에서 실제 성능에 주목할 필요가 없습니다. 답장을 보내 주셔서 감사합니다. –

1

명령 줄 도구에 구속되지 않은 경우 netdude을 확인하십시오. 단 몇 번의 클릭만으로 패킷 추적을 편집 할 수있는 GTK 응용 프로그램입니다.

다음은 TCP 헤더 필드를 편집하는 대화 상자를 보여주는 스크린 샷입니다.

TCP header editing http://netdude.sourceforge.net/screenshots/0.4/shot-1.gif

첨부 라이브러리는 libnetdude netdude의 핵심이다. netdude에서 제공하는 GUI가 사용자의 요구를 충족시키지 못하면 자체 툴을 작성하십시오.

+0

gpbs 트래픽을 재생해야합니다. libnetdude의 성능을 tcpreplay와 비교해 보겠습니다. – tartar

+0

이 경우 [Click] (http://www.read.cs.ucla.edu/click/click)이 문제 규모에 더 적합한 선택 일 수 있습니다. – mavam

+0

사실 이것은 클릭 라우터에 대한 트래픽 생성기입니다. 클릭 생성기에서 더 나은 PPS를 얻기 위해 클릭 생성기에 타임 스탬프를 포함하는 대신 트래픽 생성기에 타임 스탬프를 포함 시키겠다.하지만 어떤 종류의 성능을 클릭 타임에 타임 스탬프로 표시할지 확신하지 못합니다. – tartar