inflearn logo
강의

Course

Instructor

From Windows Sockets Programming Beginner to High-Performance Servers!

소켓 입/출력 설계 정리

Resolved

450

cumaskr1817

14 asked

0

안녕하세요. 선생님!

프로토콜 설계관련 큰 흐름을 정리 해보고 있습니다.

 

주요 포인트는 서버에서 관리(TCP로 연결된 소켓)하고있는 클라이언트들의

요청을 어떤 구조로 처리할지?

총 3가지 형태로 정리되었습니다.


1. 블록

강의 : 멀티쓰레드 채팅서버 구조(블록 소켓)

1.png


2. 논블록

강의에는 없지만, 하나의 쓰레드에서 여러 논블록 소켓들 돌며 Receive를 확인하는 구조

2.png


3. 비동기

강의 : IOCP기반 채팅서버(클라이언트 수신처리를 OS에 등록하여 콜백 받는구조)

3.png


궁금한 부분은

다양한 프로토콜 설계를 "큰 주제"로 나눈다면

블록/ 논블록/ 비동기 이렇게 3가지 형태로 나누어도 크게 문제가 없을 지 궁금합니다.

socket.io udp iocp tcpip

Answer 1

1

nullnull8537

음...우선 IOCP는 Non-blocking I/O 범주에 포함되어야 합니다. 그리고 구조에 따라 스레드 개수는 달라질 수 있겠습니다. 중요한 것은 이 모든 분류는 입/출력 방식에 관한 것으로 프로토콜과는 관련이 없습니다. 프로토콜은 입/출력 데이터 형식에 직접적으로 관련이 있다 하겠습니다. Blocking, Non-blocking, IOCP는 입/출력 구조에 관한 분류입니다. 참고하시기 바랍니다. 😄

0

cumaskr1817

프로토콜 설계라는 용어를 서버 구조설계로 잘못 사용하고있었네요 ㅠㅠ

IOCP모델도 None-blocking + 비동기 구조로 다시 정리했습니다.

늦은시간 답변 감사합니다 선생님!

recv, send 리턴값 질문

0

77

2

스타,워크와 같은 디스창 (Disconnected)도 비정상 종료에 대응하는 시스템으로 봐야할까요?

0

96

2

수업과 관련해서 읽어볼 만한 책 있나요?

0

111

1

서버가 끊어버리는것에 대한 질문

0

121

2

TCP 의도적 장애 테스트 질문

0

159

2

shutdown()을 호출하는 이유

0

165

1

프로토콜이 적용된 파일 송신 서버에서 send, recv 질문 있습니다!

0

153

2

"파일 송신 서버 제작" 강의 질문입니다!

0

151

2

대표적인 장애 유현 2

0

131

2

대표적인 TCP 장애 유현

0

161

2

이벤트 기반 파일 입출력과 callback 기반 파일 입출력이 네트워크에도 쓰이는 기법인가요?

0

120

2

개발환경 질문이 있습니다.

0

137

1

TCP/IP vs UDP , 멀티 스레드에서의 병목 현상에 대한 질문이 있습니다!

0

221

2

메모리 관련 문제로 질문드립니다.

0

187

2

테스트 환경 질문드립니다!

0

168

2

ThreadAcceptLoop 의 우아한(?) 종료에 대해 질문드립니다.

0

419

2

하트비트 시 서버에서의 연결 종료

0

451

2

강사님 질문 드립니다.

0

249

1

멀티스레드 기반 서버 관련 질문..!

0

412

2

빅 엔디언과 리틀 엔디언

0

378

2

TIME_WAIT 관련 문의드립니다.

0

226

1

강사님 강의자료 인쇄용으로 부탁드립니다.

0

288

1

bind 함수 관련 궁금증

0

357

2

스마트포인터 사용여부 및 가능성

0

260

2