본문 바로가기

전체 글121

DDos Generator(1) 구현한 기능 (1) C&C(서버) 구조 >사용자로부터 명령을 입력받음 >>이때 ping을 입력 (2) bot(클라이언트) 구조 >서버로 pong send 서버 스레드풀을 만들기 위한 헤더들 이때 thread는 thread를 만들기 위한 헤더 bot(클라이언트) 2020. 3. 18.
Thread pool 개념 정리 Thread pool >스레드(Thread) 컴퓨터 내부적으로 운영체제(OS)가 요청을 받아들여 메모리 공간을 확보해주고 할당해 주는 곳 >스레드 풀(Thread Pool) 미리 스레드를 일정 수량 만들어두고 작업하는 방식 스레드를 몇 개 생성해두고 모든 작업을 그 한정된 스레드로 재활용하며 작업한다고 생각하면 어플리케이션에서 사용자로부터 들어온 요청을 작업큐에 넣음-> 스레드풀은 작업큐에 들어온 Task 일감을 미리 생성해 놓은 Thread에게 일감을 할당->일을 다 처리한 Thread들은 다시 어플리케이션에게 결과값을 리턴 >Thread Pool을 사용해야 되는 이유 1. 프로그램 성능저하를 방지하기 위해 2. 다수의 사용자의 요청을 수용하고, 빠르게 처리하고 대응 3. 스레드 생성/소멸에 드는 비용.. 2020. 3. 18.
dos 공격 1. HTTP GET Flooding -웹 서버에 대한 대량의 조회를 통해서 서버에 과부하를 주는 방식 -HTTP GET 요청을 다량으로 발생시키는 공격 >실습 (1) 기존 간단하게 구현했던 웹서버 활용 dos.cpp 2.Slowloris HTTP 헤더는 각 헤더의 개행을 구분하는 문자열 \r\n(CRLF)가 존재한다. 그리고 HTTP 헤더의 끝을 알릴 땐 '\r\n\r\n을 전송 다량의 GET 메소드를 요청하지만 패킷의 끝을 '\r\n\r\n(0d 0a 0d 0a)'가 아닌 '\r\n(0d 0a)'로 끝을 맺어 서버가 응답을 계속 기다리게 함 서버의 Client Connection 수치를 최대치로 채운 뒤 서버 자원을 고갈시키는 DOS, DDOS 공격 >실습 (1) 기존 간단하게 구현했던 웹서버 활용 .. 2020. 3. 16.
멀티스레드 1. 프로세스 vs 스레드 프로세스 - 실행 중인 프로그램 - 디스크로부터 메모리에 적재되어 CPU의 할당을 받음 - 주소 공간, 파일, 메모리 등을 할당받음 스레드 - 프로세스의 실행 단위 - 프로세스 내의 주소 공간이나 자원 공유 - 스택과 PC 레지스터 값을 가짐 2. 멀티 프로세스 vs 멀티 스레드 멀티 프로세스 -자신만의 메모리 영역을 가진다. - 스레드 보다 시간과 비용이 많이 든다. - 더 많은 CPU 또는 프로세서를 시스템에 추가함으로써 컴퓨팅 속도를 높임 Ex) 뮤직 플레이어 여러 대 (프로세스 여러 개)를 동시에 실행시켜, 노래가 동시에 재생 멀티 스레드 - 하나의 프로세스를 다수의 실행 단위로 구분하여 자원 공유 등 중복성을 최소화하여 수행 능력을 향상시키는 것 - 스레드는 독립적인 .. 2020. 3. 16.