어플리케이션에서 TCP RST 패킷 날리기가 가능한지요?

skjean의 이미지

TCP RST packet의 용도에 대해서는 잘 아실거니까..
생략하구요..

실제 RST packet은 OS(TCP Stack)에서 생성하여
connection이 상대편으로 날리게 되지요?

그런데.. 이 RST Packet을 어플리케이션 프로그램에서
생성하여 전송할 수 있는 OS API가 있는지 궁금합니다.

setsockopt()를 이용하면 될 것 같기도 한데..
웹에서 웬만큼 찾아서는 나오질 안는군요...

한수 부탁드립니다.
감사합니다.

익명 사용자의 이미지

libnet 또는 libpcap 라이브러리를 설치하시면 그 안에 rawsocket등을 이용해서 사용자정의 패킷(특히, RST등)을 송신하는 라이브러리가 제공됩니다.

kuaaan의 이미지

RAW소켓 생성하셔서 TCP패킷 하나 만드세요. :)

netinet/tcp.h 랑 net/ethernet.h 헤더 인클루드하시고,

인터넷 뒤지셔서 TCP, IP 체크섬 구하는 코드 찾아보시고...

소켓 생성하실때 SOCK_PACKET 옵션이라 ETH_P_IP 옵션 주시고...

해서 입맛대로 뚝딱뚝딱하시면 됩니다.

그런데...

PCAP으로 Packet Send가 가능한가요?

(WinPCAP말고... LibPcap에서는 안되지 않나요?)

----------------------------------------------
한번뿐인 인생....
미친듯이 살아보자!
----------------------------------------------