러스트 언어 ..
아침에 글을 더 올리려고 하다가 그냥 지워버렸어요.
문득 러스트 진영에 quinn 이름으로 있는 quic 라이브러리는 소켓 인자를 받아서 작동할 수 있어요.
[1] Endpoint in quinn - Rust (docs.rs)
사실 msquic도 고려 중 이었는데 이들은 iocp, riosocket, epoll, kqueue 모델과 강도 높은 결합이 되어 있어서 임의로 소켓 핸들을 꺼내서 사용하면 터져요.
러스트는 소켓 객체를 모듈화 하여 제공함으로써 io 처리 모듈이 완전하게 분리되어 있는 차이가 있고 이러면 확장성은 러스트가 좋아요.
지난주 정도에 닷넷 서버에 quic p2p를 결합하려고 방향을 잡았었는데 취소했어요. 웹 서버는 이만하면 되었고 외부 게임 서버에 연동하여 tcp통신이나 http 프로토콜 업그래이드를 사용해야 하겠어요. udp 소켓은 커널 내부 코드가 정교하지 못하여 성능이 떨어진다는 얘기가 있는데 아마 맞을 것이어요. 패킷에 순서나 대역폭 한도 없이 데이터를 막 받아야 하는데 수신 측 버퍼에 여분을 고려하지 않고 패킷을 아무렇게나 보내면 대부분 드랍되어서 망해요. 이러이러 하여 프로토콜은 실제로는 복잡하고 어려운 것이어요.
