65536 +1 시스템 연결


35

네트워크의 모든 시스템 에는 65536 개의 포트 가 있으며 모든 연결 또는 보내기 / 받기는 그 중 하나를 사용합니다.

내 질문은 : 65536 + 1 연결 이 있으면 어떻게됩니까 ?!

정상적인 방식으로 발생하지는 않지만 운영 체제가 어떻게 처리하는지 알고 싶습니다.


12
연결이 거부됩니다. 그러나 65535의 열린 연결이 있기 오래 전에 오래 전에 실제로 문제가 발생합니다.
ChrisInEdmonton

1
@ChrisInEdmonton 아니요. 아웃 바운드 연결 인 경우 로컬 포트를 할당 할 수 없으므로 바인드 오류가 발생합니다. 인바운드 연결 인 경우 포트 제한이 적용되지 않습니다.
user207421

연결이 끊어지면 연결이 거부되고 연결이 끊어지면 소켓 호출에 오류가 발생합니다. 확실하지 않기 때문에 이것을 대답으로 쓰지 않을 것입니다.
Jorge Aldo

답변:


61

시스템은 각각 별도의 포트를 사용 하지 않아도 되기 때문에 65536 개 이상의 동시 연결을 처리 할 수 ​​있습니다 .

TCP 연결 또는 UDP 흐름은 4 개의 튜플에 의해 정의됩니다.

(source IP address, source port, destination IP address, destination port)

따라서 단일 IP 주소를 가진 웹 서버 시스템과 포트 80에서만 수신하는 단일 HTTP 서버 소프트웨어 패키지가 있더라도 이론적으로는 연결된 IP 주소 당 65536 개의 연결을 처리 할 수 있습니다 . 따라서 클라이언트 IP 주소 1의 64Ki 연결과 클라이언트 IP 주소 2의 64Ki 연결 등

따라서 프로토콜은 첫 번째 근사값까지 단일 IPv4 주소의 단일 TCP 또는 UDP 포트에 대한 2 개의 48 개의 연결 / 흐름을 지원합니다. TCP와 UDP를 함께 그리고 IPv4의 주소 공간과 IPv6의 우주적으로 / 공식적으로 큰 주소 공간을 모두 고려하면 프로토콜 자체가 호스트의 동시 연결 수에 대한 제한의 원인이 될 수 없음을 알 수 있습니다 처리 할 수 ​​있습니다.

마찬가지로 TCP 또는 UDP 프로토콜에는 클라이언트 시스템이 단일 IP 주소에서 단일 소스 포트를 사용하여 다양한 서버 주소 및 포트에 여러 개의 발신 연결을 만드는 것을 막는 것은 없습니다. 때때로 특정 OS의 네트워킹 API가이를 쉽게 만들지 못할 수도 있지만, 예전의 "[BSD] 소켓"API는 TCP와 UDP에 대한 하나의 API라는 것을 기억하는 것이 중요합니다. TCP 및 UDP에는 기존 소켓 API에 노출되지 않은 기능이있을 수 있습니다.

따라서 주어진 호스트가 처리 할 수있는 동시 TCP 연결 또는 UDP 흐름의 수는 포트 번호가 아니라 RAM 공간 및 CPU 시간과 같은 시스템 리소스에 의해 모든 연결을 추적하고 모두 서비스하는 데 걸리는 시간에 의해 제한됩니다. 또한 OS의 구현 별 세부 정보는 인공적인 제한을 부과 할 수 있습니다. 예를 들어, 유닉스 "모든 것이 파일"이라는 철학에는 모든 TCP 연결 또는 UDP 흐름에 대한 파일 설명자가있을 수 있습니다. 유닉스 커널이 추적 할 수있는 파일 디스크립터 수에 제한이있는 경우 해당 파일 디스크립터 제한은 커널이 처리 할 수있는 동시 TCP 연결 또는 UDP 플로우 수에 대한 인공 제한입니다.


2
이 훌륭한 답변에서 en.wikipedia.org/wiki/C10k_problem 에 연결하는 것이 좋습니다.
ChrisInEdmonton

1
가능한 모든 IP 주소에서 65,534 개의 연결을 동시에 수용 할 수있는 TCP 서버를 구현했습니다. 들어오는 문자를 몇 개의 문자로 대체하는 것만으로 많은 작업을 수행하지는 않지만 매우 작은 하드웨어 플랫폼에서 실행됩니다. 나는 그것이 RFC를 준수한다고 생각하지 않지만, 대부분의 포트에서 얼마나 많은 TCP 연결이 열려 있는지 알거나 돌보지 않아도 잘 작동하는 것 같습니다.
supercat

2
당신이 경우 정말 두 컴퓨터 사이에 이상 65536 개 연결을 연결해야합니다, 당신은 여러 개의 IP 주소를 사용하도록 시스템을 설정할 수 있습니다. 두 시스템에 추가 한 각 IP 주소는 최대 연결 수를 2 차로 늘립니다 (적어도 이론 상으로는 다른 문제를 먼저 만날 가능성이 더 높습니다).
Lie Ryan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.