KoreanFoodie's Study

Boost.Asio 의 개념 및 요약 정리 본문

Game Dev/Game Server

Boost.Asio 의 개념 및 요약 정리

GoldGiver 2022. 11. 1. 14:09

Asio 는 Asynchronous IO 의 약자이다. Asio 를 이해하기 위해서는, 다음과 같은 용어들을 알고 있어야 한다.

  • IO Service 클래스 : 커널에서 발생한 입출력 이벤트를 디스패치 해주는 기능을 수행. 디스패치란, 우선순위가 높은 작업이 우선적으로 수행될 수 있도록 시스템 자원을 할당하는 것을 의미한다. IO Service 클래스는 커널에서 발생한 네트워크상의 접속 및 데이터 처리 이벤트를 처리한다.
  • 종단점(Endpoint) : 네트워크 상의 특정 컴퓨터에서 실행되고 있는 하나의 프로그램. 구체적으로 IP 주소와 포트 번호의 한 쌍을 종단점이라고 함.
  • DNS(Domain Name Server) : Boost Asio 에서는 도메인 주소를 이용, IP 주소를 알아내어 종단점을 구한다. 또한 Query 클래스는 도메인 주소와 사용할 프로토콜을 이용해 DNS 질의문을 생성하기도 한다.
  • Acceptor : 서버 프로그램이 IO Service 와 종단점을 이용해 클라이언트의 접속을 받아들이는 기능을 수행함.
  • 능동 소켓(Active Socket) : 네트워크상의 다른 컴퓨터로 데이터를 보내거나 받기 위해 연결 수립을 위해 사용하는 소켓.
  • 반복자(Iterator) : Boost Asio 에서 반복자는 여러 개의 IP 주소가 존재할 때 종료점도 여러 개가 존재할 수 있다는 점에서 '개별적인 종료점에 접근'하는 기능을 제공. 클라이언트 프로그램은 원하는 응답을 들을 때까지 한 번에 하나의 종료점과 통신할 수도 있음.

참고 : Boost Asio 기초 지식, Boost Asio 기본 구조, Sync/Async/Blocking/Non-Blocking 의 차이, IOCP 와의 차이

Comments