2013-03-17 4 views
-1

I는 I가 TCP ACK 패킷을 전송 한 시스템 S를 사용전송 패킷이 수신 된 패킷

시퀀스 번호 및 TCP 플래그 (SYN, ACK)을 중심으로 TCP 패킷을 생성하는 원시 소켓을 사용 (플래그 다르다 ACK가 1로 설정되어 있고 다른 두 컴퓨터가 다른 서브넷에 있습니다. 내 학교의 모든 서브넷에 있습니다.

그런데 tcpdump를 사용하여 패킷을 캡처했습니다.

이상한 일이 발생합니다! 머신 S에서 캡쳐 된 패킷은 예상대로이지만 ACK 패킷이지만 수신 머신 R에서 패킷이 SYN 패킷이되고 시퀀스 번호가 변경되면 seq no는 예상보다 작아지고 ack_seq는 0!

잠재적 인 문제점은 무엇입니까? 내 생각 엔 라우터/방화벽이 ACK 패킷을 SYN 패킷으로 수정 한 이유는 ACK보다 SYN SYN/ACK 교환이 없기 때문입니다. 이 (가) 가능합니까 또는 아니십니까?

두 개의 캡처 된 패킷은 다음과 같습니다 발생할 것

https://docs.google.com/file/d/0B09y_TWqTtwlVnpuUlNwUmM1YUE/edit?usp=sharing https://docs.google.com/file/d/0B09y_TWqTtwlTXhjUms4ZnlkMVE/edit?usp=sharing

답변

0

가장 큰 문제는 각각의 경우에 수신 TCP 스택이 패킷을받을 가능성이 회신 것이라고 할 것이다. 시도하고있는 것은 실제로 불가능합니다.

+0

나는 지금 그 결과를 신경 쓰지 않는다, 나는 단지 수신 호스트가 패킷을 정확하게 수신 할 수 있기를 바란다! – user138126

+0

그럴 가능성은 적습니다. 당신은 여전히 ​​[이게 무엇에 관한 것인가]에 관해서는 질문에 대답하지 않았습니다. (http://stackoverflow.com/questions/15428694/how-to-modify-packet-headerip-header-tcp-header-before-the- 호스트 - send-them-int). – EJP