오전 11:58 2002-03-05
Winsock SNDBUF에 관하여
bro (bro@shinbiro.com)
=======================================================
Winsock2 dll(ws2_32.dll)
   |
Layered/Base Providers
RSVP,Proxy,Default Providers(mswsock.dll,msafd.dll)
   |
Windows Sockets Kernel-mode driver (afd.sys)
   |
Transport Protocols (TDI Driver)
TCP/IP,ATM,Other

AFD.SYS가 버퍼 관리를 한다.
SO_SNDUF나 SO_RCVBUF값을 조정하는것은 AFD.SYS내의 각 소켓별
커널 버퍼 크기를 조정하는 결과를 얻는다.
SO_SNDBUF를 0으로 둔다는 것은 정확한 동작을 이해했을때만 해야한다.
많은 일반적인 경우 SO_SNDBUF를 0으로 하는 것은 비효율적이다.
만일 블러킹 센드에서 SO_SNDBUF 0으로 하면 두가지 문제가 생길수있는데
하나는 리모트 TCP로부터 데이타가 잘 전달되었다는 Acknowledgment를
받지 못 할 수도 있고, 더 중요한것은 여러스레드에서 동시에 send를
할 수 없다는 문제가 생길수있다.
그러나, 고성능 서버 애플리케이션에서는 send버퍼를 0으로 할수있다.

+ Recent posts