포트의 목적은 무엇입니까?

포트의 목적은 무엇입니까?

에 관해서 몇 가지 질문이 있습니다.내가 찾은 포트에 대한 다음 설명.

애플리케이션 계층은 포트를 통해 전송 계층과 통신합니다. 포트에는 번호가 매겨져 있으며 표준 응용 프로그램은 항상 동일한 포트를 사용합니다.

포트 번호를 사용하면 전송 프로토콜(일반적으로 TCP)이 패킷 내부에 어떤 종류의 콘텐츠가 있는지 알 수 있으며, 수신 측에서는 수신된 데이터를 어떤 애플리케이션 프로토콜에 전달해야 하는지 알 수 있습니다.

  • 절대적인 보장이 없는데 포트 번호를 사용하여 내부에 어떤 종류의 애플리케이션 데이터 프로토콜이 있는지 알려주는 이유는 무엇입니까?

    제가 이해한 바에 따르면, 포트를 통해 전송하는 애플리케이션 데이터의 종류에는 제한이 없습니다(그냥 제안일 뿐입니다). 게다가 이 목적을 위해 프로토콜 데이터가 이미 패킷 어딘가에 포함되어 있지 않습니까?

  • 또한 HTTP나 다른 종류의 프로토콜을 포트 25(SMTP 예상)의 대상으로 보내는 경우 데이터는 어떻게 되나요?

  • 셋째, 어떤 프로그램에도 연결되지 않아 수신되지 않는 포트로 데이터를 보내면 데이터는 어떻게 되나요?

  • **마지막으로, 포트가 단일 프로그램에만 바인딩될 수 있다면 수신 HTTP 데이터에 의존하는 여러 프로그램이 어떻게 내 컴퓨터에서 동시에 실행될 수 있습니까?****

미리 감사드립니다!

답변1

절대적인 보장이 없는데 포트 번호를 사용하여 내부에 어떤 종류의 애플리케이션 데이터 프로토콜이 있는지 알려주는 이유는 무엇입니까?

추측은 일을 실행하는 끔찍한 방법이고 예를 들어 악의적인 사람이 잘못된 것을 보내는 것을 막을 수 있는 방법이 없기 때문입니다. 따라서 모두가 친절하게 플레이하고 상황을 악화시키지 않는 경우에 도움이 됩니다.

제가 이해한 바에 따르면, 포트를 통해 전송하는 애플리케이션 데이터의 종류에는 제한이 없습니다(그냥 제안일 뿐입니다).

옳은. 사실 그것은 제안이라기보다 많은 사람들이 우연히 공유하게 된 합의일 뿐입니다.

게다가 이 목적을 위해 프로토콜 데이터가 이미 패킷 어딘가에 포함되어 있지 않습니까?

아니요. 적어도 포트가 일반적으로 나타내는 수준은 아닙니다. 어떤 종류의 더 높은 수준의 IP 프로토콜이 전송되고 있는지(예: TCP, UDP)는 알지만 그 내용(예: HTTP, SMTP)은 알 수 없습니다. .

또한 HTTP나 다른 종류의 프로토콜을 포트 25(SMTP 예상)의 대상으로 보내는 경우 데이터는 어떻게 되나요?

TCP는 데이터를 애플리케이션 계층에 전달하기만 하면 원하는 대로 무엇이든 할 수 있습니다. 대부분의 경우 오류가 발생합니다. 때로는 악용 가능한 보안 허점이 발생합니다.

때때로 포트에 SSL을 사용하지 않을 때 일부 HTTPS 서버가 제공하는 일반 텍스트 HTTP 오류와 같이 잘못된 클라이언트에 대해 좋은 동작이 발생합니다.

셋째, 어떤 프로그램에도 연결되지 않아 수신되지 않는 포트로 데이터를 보내면 데이터는 어떻게 되나요?

수신 시스템에서 ICMP 오류 메시지가 나타납니다. 기술적으로는 수신자가 원하는 대로 무엇이든 할 수 있지만 실제로는 그런 일이 발생합니다.

마지막으로 포트가 단일 프로그램에만 바인딩될 수 있다면 수신 HTTP 데이터에 의존하는 여러 프로그램이 내 컴퓨터에서 어떻게 동시에 실행될 수 있습니까?

브라우저가 원격 서버에 HTTP 연결을 할 때 임의의 로컬 포트를 사용하고 원격 서버의 잘 알려진 포트(80 또는 443)와 통신합니다. 이 경우 각 아웃바운드 연결마다 고유합니다. (단, 서버의 경우 기술적으로 반드시 그럴 필요는 없습니다.)

서버 측에서는 수신할 때 하나의 프로세스만 포트(Unix/BSD 소켓)에서 새 연결을 수락할 수 있지만 설정된 연결을 서비스를 위해 다른 프로세스에 전달할 수 있습니다. 세트는 고유하므로 트래픽을 올바른 연결로 라우팅할 수 있습니다.

관련 정보