- 컴퓨터에 65,535개의 TCP 포트가 있는 이유는 무엇입니까?
- 이 번호는 어디서 나온 걸까요?
- 그것은 무엇을 나타냅니까?
답변1
- "컴퓨터에 65535개의 TCP 포트가 있는 이유는 무엇입니까?"
컴퓨터가 하는 일~ 아니다포트가 있습니다. 당신이 언급하는 "포트"의 개념은TCP그리고UDP프로토콜TCP/IP 네트워킹 스택. 엄밀히 기술적인 관점에서 볼 때 TCP와 UDP는 모두 여러 종류의 정보(소스 포트, 대상 포트, 시퀀스 번호, 데이터 등)를 전달하는 방식으로 구성됩니다. "소스 포트"와 "대상 포트"는 모두 16비트 "필드"로 구성되어 있으므로(TCP 및 UDP 패킷 내에서) 다음과 같은 제한이 있습니다. 소스 포트와 대상 포트는 16으로 표시할 수 있는 모든 값을 가정할 수 있습니다. 비트(일명: 0에서 65535까지);
- "이 번호는 어디서 나온 걸까요?"
위 참조: 소스 포트와 대상 포트는 각각의 패킷 내에서 16비트 값으로 표시되므로 0에서 65535 사이의 값을 가정할 수 있습니다.
- "그것은 실제로 무엇을 나타내는가?"
간단히 말해서, "소스 포트"와 "대상 포트"는 모두 매우 중요한 역할을 합니다. 단일 "호스트"(단일 "클라이언트" 또는 단일 "서버")가 서로 다른 서비스를 "제공"할 수 있도록 하기 때문입니다.서비스단일 IP 주소가 있음에도 불구하고 네트워크 클라이언트를 향합니다. 즉, "포트"가 없으면 웹 서버(일반 HTTP의 경우 TCP 포트 80, HTTPS의 경우 TCP 포트 443), 메일 서버(TCP 포트)를 제공하는 단일 "서버"를 갖는 것이 훨씬 더 어려울 것입니다. 인바운드-SMTP의 경우 25, POP3 액세스의 경우 TCP 포트 110, IMAP 액세스의 경우 TCP 포트 143, DB 서버(MySQL의 경우 TCP/포트 3306) 등
"순수주의자" 독자들은 위의 지나치게 단순화된 내용에 대해 나와 동의하지 않을 수도 있습니다.오른쪽: 실제로 IP 주소와 PORTS는 매우 중요한 역할을 하며, 이를 완전히 이해하려면 "캡슐화" 개념(확실히 이 답변에 제시된 개념 중에서 가장 중요한 개념입니다.) 불행히도 이를 위해서는 일반적으로 다음이 필요합니다.많이적절하게 "통달"해야 하는 경우가 많습니다... 그래서 위에서 지나치게 단순화한 것입니다. :-)
답변2
TCP, UDP 및 기타 IP 서비스는 IP 네트워크를 사용하는 호스트 간의 클라이언트와 서버 프로세스 간의 신중한 통신을 위해 포트를 사용합니다.
더 자세한 정보를 확인하실 수 있습니다이 위키 기사에서.
하향식 관점에서 포트는 두 호스트 간의 고유한 대화를 나타냅니다. 예를 들어, 여러 개의 DNS 요청이 호스트에 의해 지정된 서버에 동시에 이루어지며 각각은 대상 포트 53에 대해 서로 다른 소스 포트를 사용합니다. 서버가 응답을 가져오고 요청을 처리하면 특정 응답을 동일한 포트로 다시 보냅니다. , 응답을 기대하는 고유한 프로세스에 의해 수신됩니다.
상향식 관점에서 포트는 호스트의 운영 체제에 의해 별도의 프로세스의 IP 통신 회선을 예약하는 방법입니다. 원격 호스트의 동일한 포트에 요청을 보내는 프로세스가 여러 개 있을 수 있지만 각 프로세스는 요청에 대해 서로 다른 소스 포트를 사용합니다. 이렇게 하면 적절한 프로세스에서 응답을 받을 수 있습니다.
포팅된 프로토콜의 경우 패킷 헤더에 32비트가 예약되어 있습니다. 즉, 소스 포트용으로 16비트, 대상 포트용으로 16비트가 있습니다. TCP 및 UDP의 경우 이는 IP 헤더 바로 다음의 처음 32비트입니다. 192번째 비트에서 시작됩니다. 16비트 숫자는 0에서 65535 사이의 값을 갖습니다.
답변3
65,536은 2의 16제곱(2^16)이기 때문에 컴퓨팅에서 매우 일반적인 숫자입니다. 2^8은 256이고, 65,536은 256의 제곱입니다.
즉, 16비트 이진수는 65,536개의 서로 다른 정수를 나타낼 수 있습니다. 아마도 이것이 65,535 범위의 출처일 것입니다.
하지만 잠깐만요, 65,535는 65,536에서 1을 뺀 값이니까 한 자릿수가 나와야 한다고 생각하시나요? 글쎄, 0부터 세기 시작하면 그렇지 않습니다! 예를 들어, 8비트 이미지는 256개의 값을 인코딩하지만 일반적으로 이 값은 0에서 시작하여 255까지 올라갑니다. 이것이 바로 컴퓨팅에서 255 또는 65,535와 같은 숫자를 자주 보는 이유입니다.
나는 TCP 포트가 원래 16비트 숫자로 저장되었기 때문에 상한선이 있다고 생각합니다. 아직도 그런 경우인지 잘 모르겠습니다. 도움이 되었기를 바랍니다.