고성능 Windows 소켓 애플리케이션

Microsoft Windows 네트워킹 구성 요소는 성능 및 확장성을 위해 개발되었습니다. 이를 통해 애플리케이션은 사용 가능한 네트워크 대역폭을 최대화할 수 있습니다. Windows 소켓 및 Windows TCP/IP 프로토콜 스택이 조정되고 간소화되었습니다. 따라서 다음과 같은 사실에서 알 수 있듯이 올바르게 작성된 Windows 애플리케이션은 뛰어난 처리량과 성능을 달성할 수 있습니다.

  • Windows는 200,000개 이상의 동시 TCP 연결을 서비스할 수 있습니다.
  • SPECWeb96에서 수행한 테스트에서 Windows의 인터넷 정보 서버는 초당 25,000개 이상의 HTTP 요청을 서비스했습니다.
  • Windows는 10개의 홉으로 구성된 대륙 횡단 기가비트 네트워크에서 750Mbps 이상의 전송 기록을 설정했습니다.

이러한 도전 과제는 Windows TCP/IP가 데이터를 매우 빠르게 처리한다는 것을 보여줍니다. 그러나 많은 애플리케이션은 무의식적으로 성능 방해 기술을 구현하기 때문에 Windows, TCP/IP 및 Windows 소켓 성능 기능을 활용하지 않습니다.

이 가이드에서는 일반적인 프로그래밍 실수를 식별하고 이를 방지하는 방법을 알아봅니다. 그런 다음 Windows 소켓 애플리케이션이 최적으로 수행되도록 하는 기술을 알아봅니다. 이 가이드는 6개 섹션으로 제공됩니다. 섹션의 순서는 의도적입니다. 이 가이드를 최대한 활용하려면 순서대로 읽어보세요. 다음 표에서는 각 섹션에 대한 링크와 각 항목에 대한 간략한 설명을 제공합니다.

항목 설명
네트워크 용어 네트워크 애플리케이션의 성능을 이해하는 데 필요한 네트워킹 용어 및 메트릭을 정의합니다.
성능 차원 애플리케이션의 인식된 네트워크 성능과 실제 네트워크 성능에 영향을 주는 성능 차원에 대해 설명합니다.
TCP/IP 특성 잘못 작성된 애플리케이션의 성능 문제를 초래할 수 있는 TCP/IP 프로토콜 특성을 정의합니다.
애플리케이션 동작 성능이 저조한 네트워크 애플리케이션의 징후를 인식하는 방법을 설명합니다.
느린 애플리케이션 개선 성능이 저하되는 애플리케이션에 기여하는 애플리케이션 디자인 문제의 샘플을 제공하고 성능을 향상시키기 위해 코드를 변경합니다.
대화형 애플리케이션에 대한 모범 사례 최적의 대화형 네트워크 애플리케이션을 개발하기 위해 사용할 모범 사례를 나열합니다.