오전 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으로 할수있다.
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으로 할수있다.
'KB > MFC/Win32' 카테고리의 다른 글
UI 스레드로 날린 PostThreadMesage가 사라질때 (0) | 2004.03.19 |
---|---|
TSQL 구문 여러개 날려주기 (0) | 2004.03.19 |
regsvr32 -u와 같은 코드 (0) | 2004.03.19 |
process 모니터링 (0) | 2004.03.19 |
OLE 자동화시 작업전환 나오는것 안나오게 하기 (0) | 2004.03.19 |