삽질의 현장/- 네트워크 프로그래밍

#018_Window_Network_네트워크 I/O(입출력) 모델

shovelman 2015. 10. 8. 17:09


안녕하세요 삽잡이입니다.


이번 시간에는 Window Socket Programming에서 배우는 내용중에

입출력 즉, 네트워크 통신을 하기 위한 효율적인 여러가지 모델들에 대해서 알아보도록 하겠습니다.

즉, MS사에서 제공하는 다른 기능들에 대해서 차례대로 알아보자 이겁니다.


지금부터 배워볼 모델들은 효율적인 네트워크 프로그램을 만들기 위함입니다.

우리가 알아볼 I/O 통신 방식은 6가지인데

이 중에서 이미 한가지 모델 방식을 친숙할 것입니다... 

그 하나가 바로 '쓰레드 모델링'을 사용한 네트워크 입출력 통신이니깐 말입니다...

이 외에도 Window Socket Library에서 제공하는 모델 방식이 5가지가 더 있다 이겁니다...


블로킹 소켓은 무조건 쓰레딩 방식을 사용하냐 하면 그건 아니지만 대부분 쓰레딩 방식을 사용합니다...

그리고 이 방식은 다른 언어에서도 사용하는 방식이구 말입니다...


넌 블로킹 소켓은 일반적으로 다른 I/O 모델 방식을 사용합니다...

즉, MS에서 제공하는 다른 기능들을 사용한다 이겁니다.

그래서 결과적으로 효율인 I/O 입출력을 할 수 있도록 프로그램을 작성하게 되는것입니다.


윈도우즈 소켓 라이브러리에서 제공해주는 모델 방식은


 

이렇게 됩니다...

여담으로 ICOP 모델링 방식이 제일 어려운데, 

윈도우 서버로 온라인 게임을 만들 때에는 다 IOCP 모델링 방식을 사용한다고 합니다.


다 비슷한 모델링 방식이지만 각각 모델마다 핵심적인 '특징'이 있습니다...


버클리 소켓이라고 들어보셨습니까?

TCP/IP 프로토콜을 만든 최초의 프로토콜과 라이브러리를 배포한 곳이 버클리 대학인데,

이 놈의 초창기 모델을 따르는 모델을 바로 '버클리 소켓'이라고 부릅니다...

이 버클리 소켓으로 비롯해 윈도우 소켓, 리눅스 소켓, 유닉스 소켓등이 만들어진겁니다.


버클리 소켓이 가장 기본적인 개념을 가지고 있는데,

이 중 쓰레딩 모델과 select 모델 방식이 버클리 소켓에서 가장 기본적으로 사용하는 모델링 방식입니다.

따라서, 필자가 공부하고 있는 윈도우즈 소켓 프로그램말고도...

즉, 다른 소켓 프로그램에도 쓰레딩과 select 모델 방식까지 있다 이겁니다...


즉, 쓰레딩과 select 모델링 방식에는 범용성이 있다 이거죠...

이는 윈도우 소켓 모델이라고 한정 지을 것이 아닌, 공용 모델링 방식이라고 할 수 있습니다.

조금만 수정하면 linux에서도 동작시킬 수 있으니깐요...

Real 윈도우 소켓 모델들은 3, 4, 5, 6 번이라는 것입니다...


다음시간부터는 2번, Select 모델링에 대해서 알아보도록 하겠습니다.


이상 삽잡이였습니다!