본문 바로가기

소켓 프로그래밍

[2009/06/24] 시그널 핸들링과 좀비 프로세스 1. 시그널(Signal) 핸들링 - 시그널이란? 1) 시스템 내의 특정상황 발생을 알리기 위해서 커널이 전달하는 신호. - 시그널 핸들러 1) 적절한 처리를 해 주는 함수. - 시그널 핸들링 1) 시그널이 발생 함에 따라 이에 대한 적절한 처리를 해 주는 것. 2. 시그널(Signal)의 종류 3. signal 함수를 이용한 시그널 핸들링 - signal 함수 1) 시그널과 시그널 핸들러를 연결해 주는 기능을 한다. #include void (*signal(int signum, void(*func)(int)))(int); 3. sigaction 함수를 이용한 시그널 핸들링 - sigaction 함수 1) 시그널과 시그널 핸들러를 연결해 주는 기능을 한다. #include int sigaction(int.. 더보기
[2009/06/24] 프로세스 & 좀비 프로세스 1. 좀비 프로세스(zombie process) - 좀비 프로세스란? 1) 프로세스 종료 후 메모리상에서 사라지지 않는 프로세스 - 좀비 프로세스의 생성 이유 1) 자식 프로세스는 부모 프로세스에게 실행 결과에 대한 값을 반환해야 한다. 2. 좀비 프로세스의 소멸1 - 소멸 방법 1) 부모 프로세스에서 자식 프로세스의 반환 값을 요구한다. - wait 함수의 사용 1) 장점 : 사용하기 간단하다. 2) 단점 : 무한 대기 상태에 빠질 수 있다. #include #include pid_t wait(int *status) 3. 좀비 프로세스의 소멸2 - 소멸 방법 1) 부모 프로세스에서 자식 프로세스의 반환 값을 요구한다. - waitpid 함수의 사용 1) wait 함수가 지니고 있는 무한 대기 상태의 문.. 더보기
[2009/06/23] fork 함수에 의한 프로세스의 생성 1. fork 함수 호출을 통한 프로세스의 생성 - fork 함수 호출을 통한 프로세스의 생성은 복사에 의한 생성이다. #include #include pid_t fork(void); 더보기
[2009/06/22] Nagle 알고리즘에 대한 이해 1. Nagle 알고리즘에 대한 이해. - 네트워크상의 패킷 수를 줄이기 위해 제안된 알고리즘. - ACK를 수신해야만 다음 전송을 진행하는 알고리즘. 2. Nagle 알고리즘의 장점과 단점. - 장점 : 네트워크의 효율성이 높아진다.(적은 패킷의 양) - 단점 : 전송 속도가 느리다(ACK 수신 후 패킷 전송) - 생각해 볼 문제 : Nagle 알고리즘의 중단이 데이터 전송 속도를 무조건 향상시켜 주는 것은 아니다. 3. TCP_NODELAY - Nagle 알고리즘을 Disable 시키기 위한 옵션의 변경. - TCP 소켓은 생성시 기본적으로 Nagle 알고리즘 적용 더보기
[2009/06/22] TIME-WAIT 상태에 대한 이해 1. TIME-WAIT 상태란 ? - 연결 종료 시 마지막 패킷 전송 실패를 대비하기 위한 상태. 2. 서버의 연결 종료 - 서버에서 먼저 종료 요청 후, 다시 서버를 가동 시키면? 3. TIME-WAIT 타이머의 재시작 - TIME-WAIT 상태는 우리의 생각보다 더 길어 질 수 있다. 4. SO_REUSEADDR - TIME-WAIT 상태에 있는 서버의 IP와 PORT를 재 할당 하도록 옵션 설정. 더보기