TCP 서버는 65535 개의 클라이언트로 제한됩니까?


10

이것이 단일 컴퓨터 / 응용 프로그램이 유지할 수있는 클라이언트 수를 제한한다고 생각할 수 있습니다.

하나는 웹 서버를 감독 할 수 있으며, ~ 65k 연결을 초과하는 것으로 예상되는 사용 수준으로 확장 될 수 있는지 확인해야합니다.

소프트웨어의 경우 별도의 고려 사항이 있습니다 ( /programming/1575453/how-many-socket-connections-can-a-web-server-handle )


어떤 대답이 도움이 되었습니까? 그렇다면 질문에 대한 답변이 계속 나오지 않도록 답변을 수락해야합니다. 또는 자신의 답변을 제공하고 수락 할 수 있습니다.
Ron Maupin

답변:


16

짧은 대답은 아니오입니다. 그것은 한계가 아닙니다.

TCP 포트 필드는 2x 바이트이며 수량은 65536입니다.이 숫자 는 서버 가 가질 수있는 주소 의 양을 제한합니다 . 그러나 이것은 클라이언트 수 를 ~ 64k로 제한하지 않습니다 . 각 TCP 패킷에는 대상과 소스에 각각 하나씩 두 개의 포트 필드 (두 개의 IP 주소)가 있습니다.

주어진 TCP 연결은 각각 IP 주소와 포트 번호를 가진 소스와 대상의 튜플입니다. 대상 (서버 쪽)은 고정되어 있지만 원본 주소 (클라이언트 쪽)는 포트와 IP 주소에 따라 다를 수 있습니다.

치다:

  • 서버 IP-100.0.0.1 (고정)
  • 서버 포트-80 (고정)
  • 클라이언트 IP-0.0.0.0-255.255.255.255 (32 비트 범위)
  • 클라이언트 포트-0-65535 (16 비트 범위)

예. 단일 IP 주소를 가진 클라이언트 (또는 사무실)는 동시에 서버에 65535 번만 연결할 수 있지만 해당 클라이언트 (또는 사무실)에 여러 IPv4 주소가있는 경우 더 많은 배수를 연결할 수 있습니다.

일반적으로 많은 클라이언트 장치에서 수백만 개의 IP 주소 가 사용되고 있으며 단일 소스 포트만 사용하여 단일 서버 포트 에 연결하는 경우 이미 65536 이상의 숫자를 사용할 수 있습니다.

IP / TCP 프로토콜의 이론적 인 수학적 한계는 2 ^ 32 * 2 ^ 16입니다. 실제로 IP 주소의 수가 적습니다. 일부 예약 된 IP 블록에 대해서는 빼야합니다. 또한 실제 클라이언트 컴퓨터는 다른 서버에 연결하는 여러 응용 프로그램을 실행하여 TCP 포트 풀을 줄이므로 실제로는 클라이언트 쪽 포트 수가 적습니다. 그러나 TCP 세션이 포트 번호를 종료하면이 풀은 거의 사용되지 않습니다. 수영장에서 다시 사용할 수 있습니다.

참고 : IPv6의 경우 IP 주소의 양은 증가하지만 TCP의 포트 필드는 동일한 크기로 유지됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.