Windows 8부터 새로 생긴 WinSock의 확장 기능.

TCP, UDP, 멀티캐스트 UDP, IPv4, IPv6 모두 지원한다.

아주 높은 성능과 많은 송수신, 예측 가능성을 필요로 하는 애플리케이션에서 사용하면

네트워크 대기 시간 감소, 메시지 율 증가, 응답 시간 예측 가능성 향상을 실현할 수 있다.

 

 

현재 RIO에 대한 자료는 나온 시기에 비해서 아주 적은 편이다.

RIO에 대해서 알고 싶다면 먼저

구승모님의 'Windows Registered I/O (RIO) vs IOCP'

http://www.slideshare.net/sm9kr/windows-registered-io-rio 를 추천한다. 한글로 간단 명료하게 잘 설명 되어 있다.

 

위 자료를 이해했다면 위의 내용보다 좀 더 많은 정보를 볼 수 있는 MS Build 세미나 자료인 'New Techniques to Develop Low Latency Network Apps'를 보면 좋다.

http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fbuild%2f2011%2fslides%2fSAC-593T_Briggs.pptx

영어이지만 구승모님 자료를 보았다면 어렵지 않게 볼 수 있다.

 

좀 더 이론 적인 부분을 보고 싶다면 아래의 자료도 좋다.

ServerFramework.com - Winsock Registered I/O Archives

http://www.serverframework.com/asynchronousevents/rio/

 

 

이제 이론을 다 보았다면 실제 코드를 보자. 역시 구승모님의 'TCP 서버 예제' https://github.com/zeliard/RIOTcpServer 가 좋다.

UDP 버전도 있다.

https://gist.github.com/ujentus/5997058/raw/48e75cf2f585ae00b19c3217a7da9e98d80f150b/RIOServer_sm9.cpp

 

Github에도 RIO 관련 라이브러리가 있으니 참고하면 좋을 듯 하다.

https://github.com/unicomp21/RIO.lib

 

자세한 API 설명은 MSDN을 참고해야 한다.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms740642(v=vs.85).aspx

 

 

기존의 IOCP를 잘 이해하고 있다면 어렵지 않게 알 수 있을 것이다.

 



ps: 

1. 구글링에서 RIO는 최신 버전의 닷넷프레임워크의 네트워크 라이브러리에서 사용되고 있어서 MS에서 예제 코드나 자세한 설명이 없다는 글을 본 적이 있다.

2. RIO를 구승모님의 'Windows Registered I/O (RIO) vs IO', build 세미나 자료, 구승모님의 'TCP 서버 예제'를 보고도 이해가 안된다면 아마 IOCP 혹은 비동기 I/O에 대한 이해가 부족하다고 생각해도 될 것 같음.

저작자 표시
신고
by 흥배 2014.01.24 08:00
| 1 |