티스토리 뷰
책 ) TCP/IP 윈도우 소켓 프로그래밍
지금까지 공부했던 서버는 두가지의 서버로 분류 할 수 있다.
반복서버(iterative server)
- 여러 클라이언트를 한번에 하나씩 처리한다. 단일 스레드로 구현하며, 시스템 자원소모가 적다. 하지만 한 클라이언트의 처리 시간이 길어지면 다른 클라이언트의 대기시간이 길어진다. (UDP 서버를 작성할때 적합)
병행 서버(concurrent server)
- 여러 클라이언트를 동시에 처리한다. 멀티스레드 서버가 해당되고, 한 클라이언트의 처리 시간이 길어지더라도 다른 클라이언트에 영향을 주지 않는다. 다만 스레드를 여러 개 생성하여 구현하므로 시스템 자원 소모가 많다.
이상적인 소켓 입출력 모델의 특징
- 가능한 많은 클라이언트가 접속할 수 있다.
- 서버는 각 클라이언트의 서비스요청에 빠르게 반응하여, 고속으로 데이터를 전송한다.
- 시스템 자원(CPU, 메모리)의 사용률을 최소화 한다.
따라서 아래의 요구사항을 얼마나 만족하는지도 중요하다.
- 소켓 함수 호출시 블로킹을 최소화 한다
- 스레드 개수를 일정 수준으로 유지한다.
- CPU 명령 수행과 입출력 작업을 병행한다.
- 유저 모드와 커널 모드 전환 횟수를 최소화 한다.
- 소켓 입출력 모델의 종류 : Select, WSAAsyncSelect, WSAEventSelect, Overlapped, Completion Port(IOCP)
'서버 공부 > 네트워크' 카테고리의 다른 글
TCP/IP) WSAEventSelect 모델 통신 (0) | 2022.07.09 |
---|---|
TCP/IP) Select 모델 서버 (0) | 2022.07.08 |
비동기 형식 TCP/IP 서버 (0) | 2022.07.08 |
GUI 멀티쓰레드 소켓 프로그래밍(TCP) 2 - 호스트이름 구하기 추가 (0) | 2022.07.07 |
GUI 멀티쓰레드 소켓 프로그래밍(TCP) (0) | 2022.07.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 더블버퍼링
- 링크드 리스트
- 자료구조
- 야경
- 드림핵
- 정보보안
- 인제대학교
- 멀티쓰레드
- 지뢰찾기
- 고양이
- STL
- c++
- 알고리즘
- 백준
- Select모델
- 스레드풀
- 학교
- queue
- 레지스터
- Dreamhack
- 워셜알고리즘
- 컨퍼런스
- 개발
- BFS
- 시스템보안
- 보안
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함