C, C++, C#
Winsock TCP 성능 향상 - setscokopt()
WindowsHyun
2016. 12. 1. 03:36
반응형
setsockopt( _In_ SOCKET s, _In_ int level, _In_ int optname, _In_reads_bytes_opt_(optlen) const char FAR * optval, _In_ int optlen );
1. 입출력 버퍼크기의 변경
int send_buf = 50;
int recv_buf = 300;
setsockopt( sock, SOL_SOCKET, SO_RCVBUF, (char*)&rcv_buf, sizeof( rcv_buf ) );
setsockopt( sock, SOL_SOCKET, SO_SNDBUF, (char*)&send_buf, sizeof( send_buf ) );
2. Nagle 알고리즘 해제
bool flag = TRUE;
setsockopt( sock, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof( flag ) );
Nagle 알고리즘
작은 양의 데이터를 여러번 send() 호출로 보내는 경우 네트워크 효율이 좋지 못하여
send()를 여러번 호출해도 일정 기간동안 지연 해서(100~200ms) TCP 스택의 보내기 버퍼에 쌓아둔 후 한번에 보내는 알고리즘
반응형