본문 바로가기

Network15

[네트워크 보안] 네트워크 아키텍쳐 보호되어 있는 글 입니다. 2020. 9. 14.
DDOS Generator 3 C&C server #define _WINSOCK_DEPRECATED_NO_WARNINGS #include #include #include #include #include #include #include #pragma comment(lib, "Ws2_32.lib") using namespace std; #define DEFAULT_BUFLEN 512 #define DEFAULT_PORT "27015" #define MAX_BOTS 10 class ThreadPool { public: ThreadPool(size_t num_threads); ~ThreadPool(); void EnqueueJob(function job); private: size_t num_threads; vector worker_thre.. 2020. 4. 5.
DDOS Generator 2 C&C SERVER #define _WINSOCK_DEPRECATED_NO_WARNINGS #include #include #include #include #include #include #include #pragma comment(lib, "Ws2_32.lib") using namespace std; #define DEFAULT_BUFLEN 512 #define DEFAULT_PORT "27015" #define MAX_BOTS 10 class ThreadPool { public: ThreadPool(size_t num_threads); ~ThreadPool(); void EnqueueJob(function job); private: size_t num_threads; vector worker_thre.. 2020. 3. 30.
Thread Pool 스레드를 일정 수량 만들어두고 작업하는 방식. 명령이 들어오기 전에 스레드 풀이 생성되어 대기한다. 작업해야 할 일이 들어오면 대기 상태의 스레드 유무를 확인한다. 있다면 해당 스레드로 처리하고 모두 처리하면 스레드를 소멸시키지 않고 대기 상태로 전환한다. 장점 동시에 가동하는 스레드 수의 최대치에 제한을 둘 때 유용하다. 스레드를 생성/수거하는 비용이 들지 않는다. 처음 스레드를 생성하는 비용은 들지만 이전의 스레드를 재사용하기 때문에 시스템자원을 줄일 수 있다. 작업 요청 시 스레드가 이미 대기 중이므로 딜레이가 발생하지 않는다. 단점 스레드를 많이 생성해두었다가 사용하지 않으면 메모리 낭비가 발생한다. 2020. 3. 22.
멀티 스레딩 멀티 스레드의 정의 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것 멀티 스레드와 멀티 프로세스 자신만의 메모리 영역을 가지며 CPU 또는 프로세서를 시스템에 추가하여 컴퓨팅 속도를 높이는 멀티 프로세서는 멀티 스레드보다 시간과 비용이 더 많이 든다. 따라서 메모리 공간과 시스템 자원 소모가 줄어들어 프로그램의 응답 시간이 단축되는 멀티 스레드를 사용하는 것이다. 멀티 스레드의 특징 서로 다른 스레드 끼리 데이터 영역, 힙, 스택 중 스택 영역만 비공유한다. 힙 영역을 이용하여 데이터를 주고 받는다. 자신이 속한 프로세스의 메모리를 공유하기 때문에 메모리 공간과 시스템 자원 소모가 줄어든다. 각각의 스레드끼리 별도의 작업이.. 2020. 3. 16.
[네트워크] 서버 클라이언트 채팅 프로그램 SERVER 필요한 헤더파일과 정의들이다. argc != 2 부분은 인자를 정확하게 받았는지 필터링을 진행하는 과정이다. 정확한 값이 아닐 경우 사용법을 출력하고 프로그램을 종료시킨다. 1. socket() server_fd 소켓을 생성하고 PF_INET(IPv4), 연결지향을 설정해준다. memset함수로 server_addr 구조체의 내용을 0으로 초기화 시켜준다. memset 함수는 어떤 메모리의 시작점부터 연속된 범위를 어떤 값으로 모두 지정하고 싶을 때 사용하는 함수이다. 시작 주소, 메모리에 채우고자하는 값, 채우고자 하는 메모리의 크기를 인자로 받는다. void * memset ( void * ptr, int value, size_t num ); server_addr의 주소체계, 포트를 지정.. 2020. 3. 9.