2012-03-24 3 views
0

Java에서 TCP 패킷의 1 : 1 사본을 작성하여 다시 전송하면 클라이언트의 TCP 구현이이를 자동으로 삭제하도록 할 수 있습니까? 아니면 내가 잘못된 방향으로 접근하고 있습니까? 그것은 단순한 일처럼 보이지만 저를 곤두박질니다.Java에서 패킷이 중복 되나요?

EDIT 원시 소켓 라이브러리는 여기에 어떤 관련성이 있습니까, 아니면 엄격히 요구되지는 않습니까?

답변

1

예, 원하는 페이로드 데이터를 모두 복사하여 다시 보낼 수 있습니다.

아니요, Java 소켓을 사용하여 직접 TCP/IP 헤더 (및/또는 이더넷 프레임 헤더)를 다시 만들 수는 없습니다.

당신은 libpcap의보고 할 수 있습니다에서 TCP/IP 헤더가 커널 레벨에서 작성되기 때문에

http://www.tcpdump.org/pcap.html

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 원시 소켓 라이브러리가 이런 종류의 작업을 수행해야합니까? 나는 RockSaw에 대해 들어 본 적이 없지만 결코 사용하지 않았지만 당신이 좋아하는 것을 무엇이든 할 수있게 해줍니다. – xingyu

1

TCP 패킷 복제는 커널 레벨에서 수행해야합니다.

아마도 리눅스 커널을 다시 컴파일하고 TCP/IP 스택 구현을 수정하여 패킷 삭제 및 복제를 시뮬레이션해야 할 수도 있습니다.

관련 문제