Skynet 의 UDP 지원

작자: cloudwu

번역: coolspeed

오랜 고민 끝에 결국 skynet (https://github.com/cloudwu/skynet) 에 기본적인 UDP 지원기능을 넣기호 했다. 대부분 경우, 특히 네트워크 게임 영역에 있어서 나는 UDP 프로토콜 사용을 반대하지만 skynet 은 이미 게임영역에만 사용되는게 아니라는 점을 고려하여 UDP 지원을 추가하는게 의미있는 일이라고 생각했다.

그나저나 최근의 피드백상으로 보면 어떤 사람은 skynet 을 이더넷 스위치 (Ethernet Switch, L2스위치) 상에 사용했고 (사용한 CPU 가 powerpc 의것이여서 Big / Small Endian 관련된 버그들을 해결하는데 도움이 됐다고 한다), 증권영역에 사용했다는 사람도 있었다. 그리고 비디오 방송영역에서 사용한다는 사람도 있었다. 그리고 아마 skynet 을 web 개발에 사용하는 사람도 있을 것이다. 간단한 테스트 결과에 의하면 성능면에서 lua 를 nginx 에 접합시켜 사용하는 것보다 못지 않았다.

현재 UDP 부분의 코드는 이미 완성되였는데 github 에서 udp 라는 브랜치에 넣었다. 멀지 않아서 마스터 브랜치에 머지할 생각이다. 나 자신은 이 방면의 니즈가 없어서 이런 니즈가 있는 친구들이 코드를 읽고 실제로 사용해주기를 바란다. 그래야 잠재한 문제점들을 찾을 수 있으니까.

이 부분의 설계와 일부 api 문서들은 wiki 에 보충해넣었다. ( https://github.com/cloudwu/skynet/wiki/Socket ) (중문)

Written in November 13, 2014
Translated in December 24, 2015

원문링크: http://blog.codingnow.com/2014/11/skynet_ae_udp_oeoe.html