2014-03-04 3 views
0

파이썬을 사용하여 3 방향 핸드 셰이크를 구현하고 싶습니다. 여기에 제가 한 일이 있습니다 :3 웨이 핸드 셰이크 구현

1 - syn 패킷을 생성했습니다.

2 - 패킷을 대상으로 보냅니다.

3 - NIC를 통과하는 모든 트래픽을 수신하는 기능을 만들었습니다. 스니퍼와 비슷합니다.이 기능을 사용하면 내 IP 주소 및 전송할 포트로 향하는 패킷을 찾을 수 있습니다 syn 패킷을 통해, 그것을 구문 분석합니다.

4 - 캡처 된 패킷의 플래그가 syn + ack로 설정된 경우이 함수는 ack 플래그가 설정된 TCP 패킷을 생성합니다.

문제는 내가 ack 패킷을 보내기 전에 시스템이 RST 패킷을 전송한다는 것입니다. 그래서 행동의 의미는 무엇입니까 ?? 거기에 어쨌든 그것을 막을 수 있습니까 ??

참고 : 프로덕션 용도로 3 방향 핸드 셰이크를 구현하지 않습니다. 프로토콜 TCP 작동 방식을 이해하고 싶습니다.

답변

0

네트워크의 내용을 완벽하게 제어 할 수 있도록 시스템의 TCP/IP 스택을 비활성화하십시오. 일반적으로이 작업을 수행하는 가장 쉬운 방법은 사용중인 인터페이스에 IP를 구성하지 않는 것입니다. ARP 요청을 처리해야합니다.