• Multiplexing & Demultiplexing
    • 송신측에서는 하나의 소켓연결에다가 여러가지 메시지를 순차적으로 송신하는데, 그 여러가지  메시지들이 하나의 채널(소켓연결)을 공유하므로 multiplexing 이라고 한다.
    • 반면, 수신측에서는 하나의 소켓연결로부터 여러가지 메시지가 순차적으로 수신될 때마다 그 메시지에 맞는 함수를 호출하여 해당 메시지를 처리하게 되는데, 하나의 채널(소켓연결)을 통해 수신되는 여러가지 메시지들을 분리해 내므로 demultiplexing이라고 한다.
  • Reactor pattern
    • Demultiplexing이 socket event에 의해서 시작되는 모델이다.
    • 수신측은 socket에서 event가 발생하면 Demultiplexing과정을 통해 메시지를 분리하여 적절한 메시지 핸들러를 호출한다.
  • Proactor pattern
    • Demultiplexing이 socket event에 의해서 수행되는 점은 reactor pattern과 동일하다.
    • Demultiplexing과정을 통해 분리된 메시지가 저장되는 Message queue를 가지고 있다.
    • Message queue를 감시하는 스레드 풀을 가지고 있다.
    • Message queue에 메시지가 저장되는 즉시 감시중이던 스레드가 메시지를 뽑아내어 적절한 메시지 핸들러를 호출하여 처리한다.
    • Demultiplexing과 Message Handling 을 각각 다른 스레드풀에게 담당하도록 할 수 있으므로, 단순한 Reactor pattern보다 서버의 반응속도가 빨라진다.
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST