Nagle 알고리즘

수민·2024년 5월 21일
0

게임서버 이론

목록 보기
6/6

네이글 알고리즘이란?

정의

TCP/IP 네트워크에서 데이터를 전송하기 위해서는 다양한 정보가 필요합니다. TCP 패킷은 40Byte의 헤더를 가지는데요, 만약 1byte 크기의 데이터를 10개 보내기 위해서는 41byte * 10 = 410byte가 필요합니다.

Nagle 알고리즘은 네트워크를 통해 전송할 패킷 수를 줄여 TCP/IP 네트워크의 효율을 향상시키는 방안입니다. 작은 크기의 패킷 여러 개를 한꺼번에 모아서 전송하는 것입니다. 이렇게 되면 위와 같은 상황에서 1 * 10 + 40byte = 51byte로 가능하게 됩니다.

TCP 소켓은 Nagle 알고리즘을 기본적으로 사용하고 있습니다.

장점

이러한 특성 때문에, 패킷이 몰리는 상황에서도 일정한 수준의 네트워크 부하를 유지할 수 있습니다.

패킷들을 모아서 한 번에 전송하기 때문에, 절대적인 네트워크 통신량이 줄어 네트워크 처리 부하가 감소합니다. 즉각적인 반응보다 성능이 더 중요한 게임서버와 같은 경우 네이글 알고리즘을 사용하는 것이 유리할 것 같습니다.

단점

하지만, 모아서 보내는 알고리즘 특성상, 즉각적인 반응이 필요한 경우에는 부적절할 수 있습니다.

예를 들어 클라이언트의 입력에 따라 즉시 캐릭터가 이동해야만 하는 경우, 네이글 알고리즘을 적용시킨다면 입력 즉시 패킷이 전송되는 것이 아니기 때문에 어느 정도 딜레이가 있어 반응성이 떨어질 수 있습니다.

profile
우하하

0개의 댓글