더북(TheBook)

1.2.3 스트림 관리자

스트림 관리자(stream manager)가 주로 하는 일은 다른 여러 상위 관리자를 대신하여 데이터를 연결 관리자에 보내는 것이다. 이때 중요한 처리는 바로 허용 최대 데이터 전송률을 조절하는 것이다. 전송률은 인터넷 연결 품질에 좌우된다. 트라이브스의 논문에선 사용자가 28.8 kbps 모뎀을 쓰는 경우 초당 10 패킷에 패킷당 200바이트, 곱하면 대략 초당 2킬로바이트 정도로 패킷 전송률을 잡는 예를 들고 있다. 최대 전송 빈도와 크기는 서버에 접속할 때 클라이언트가 알려주는데, 서버가 데이터를 너무 많이 보내 과부하를 주지 않도록 하기 위함이다.

여러 시스템이 각자 스트림 관리자에 데이터 전송을 요청하므로, 이들 요청의 우선순위를 관리하는 것도 스트림 관리자의 역할이다. 대역폭이 제한된 상황에선 이동 관리자, 이벤트 관리자, 고스트 관리자의 요청이 최우선으로 처리된다. 스트림 관리자는 어떤 데이터를 보낼지 결정한 다음 패킷을 꾸려 연결 관리자에 내려보낸다. 이어서 스트림 관리자는 전송을 요청했던 상위 관리자들에게 각자의 데이터가 잘 전달되었는지를 알려준다.

전송 주기와 패킷 크기를 스트림 관리자가 결정하므로, 한 패킷에 여러 종류의 데이터를 섞어 보내는 경우가 다반사이다. 이를테면 패킷 하나를 열었을 때 이동 관리자의 데이터가 일부, 이벤트 관리자의 데이터도 일부, 거기에 고스트 관리자의 데이터도 약간, 이런 식이다. 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.