컴퓨터 포트는 무엇을 의미하나요?

사실 인터넷에서 언급되는 포트는 프로토콜 포트인데, 프로토콜 소프트웨어가 데이터를 전송할 때 서로 다른 서비스 프로그램을 구별하기 위해 사용하는 기호이다. 프로토콜이라고 부르는 것은 TCP/IP 프로토콜을 의미합니다. 포트는 응용 소프트웨어 아래의 전송 계층 개념이어야 하며, 프로토콜에서 전송 계층과 응용 계층 사이의 데이터 전송을 위한 채널이기도 합니다. 이는 추상적인 개념이며 실제 의미에서는 존재하지 않습니다. 포트가 동일한 기호라는 것은 매우 분명합니다. 프로토콜 소프트웨어는 네트워크에서 데이터를 처리할 때 메시지에 있는 포트 번호가 무엇인지 분석해야 합니다. , 프로토콜 소프트웨어는 포트를 통해 각 응용 프로그램을 구별합니다. 이는 프로토콜 소프트웨어가 포트 번호를 통해서만 데이터가 누구를 위한 것인지 알 수 있다는 것을 의미합니다. IP 계층에 포트가 있는지 묻는 사람도 있습니다. 물론 이렇게 디자인하고 싶다면 별 선택의 여지가 없습니다. 실제로 IP 계층에서는 일반적으로 헤더의 상위 계층 프로토콜 유형(예: TCP, UDP)을 확인하기 때문에 전혀 그렇게 할 필요가 없습니다. 이 프로세스는 데이터를 전송하고 구별하는 전송 계층 및 애플리케이션 계층의 포트와 약간 비슷하지만 사람들은 이를 그렇게 부르지 않습니다. 왜냐하면 프로토콜 소프트웨어이기 때문입니다. 즉, TCP/IP에는 많은 프로토콜이 포함되어 있지만 모두 TCP/IP 클러스터에 속합니다. 설계 관점에서 다른 모든 프로토콜은 개발 중에 구현되지만 전송 계층에서 애플리케이션 계층까지의 경우는 그렇지 않습니다. 프로토콜 소프트웨어는 애플리케이션에 대한 일부 포트를 정의하며 일반적으로 해당 애플리케이션이 수정되지 않습니다. 하나의 네트워크 프로그램을 실행하려면 어떤 사람은 두 개의 프로그램을 실행해야 하고, 어떤 사람은 더 많은 응용 프로그램을 실행해야 하는데, 이는 하나 또는 두 개 이상의 포트를 열어야 함을 의미합니다. 각 네트워크 서비스 프로그램에는 최소한 A 포트가 있어야 하며, 이 포트를 프로그래밍으로 옮기면 , 소켓이 됩니다. 즉, "IP 포트"를 소켓이라고 합니다. 그러면 포트는 메모리에서 어떻게 보일까요? 일정량의 메모리 공간을 차지합니까?

포트는 추상화이므로 실제로 포트는 전송 계층이 처리할 때 메시지에 액세스하기 위한 대기열이기 때문에 이 질문에 답하는 것은 매우 쉽습니다. 데이터를 분석할 때 헤더를 분석하여 어떤 포트에 속하는지 확인한 후 서로 다른 포트의 데이터를 서로 다른 메모리 블록, 즉 버퍼에 저장합니다. 어쨌든 메모리 공간이고 이 공간이 모든 데이터를 저장합니다. , 우리 학교의 우체통과 마찬가지로 다른 지원서 데이터는 없습니다. 예를 들어 학교는 일반적으로 학과에서 보낸 편지를 우편함에 넣습니다. 예를 들어 12 번 사서함입니다. 두 번째 반은 13번 우체통입니다. , 당연히 우리 반이 편지를 원하면 우리 반에 해당하는 우체통에서 꺼내면 됩니다. 그렇다면 이 사서함은 항구와 같습니다. 물론 어느 쪽이 우리 학급에 속해 있는지 알아야 합니다. 당연히 학교에서 할당한 것인지, 아니면 스스로 신청한 것인지, 양측이 동의한 것인지는 신청자가 어느 것인지 알 수 없습니다. 실행되기 전, 즉 메모리에 들어가기 전에 사용하는 포트입니다. 그러나 그는 자신이 원하는 포트를 알고 있습니다. 즉, 이 포트가 제공되는지 여부는 프로토콜 소프트웨어에 달려 있습니다. 프로토콜 소프트웨어가 허용하는 경우 서비스 프로그램은 당연히 이 포트를 사용하여 하위 전송 계층을 처리합니다. 일반적으로 다른 프로그램이 먼저 사용됩니다. 다른 포트를 사용하려면 어떻게 해야 합니까?

네트워크 응용 프로그램에서 우리는 프로토콜 측면에서 FTP 응용 프로그램을 자주 접하게 됩니다. 문제는 FTP 응용 프로그램을 사용하여 다운로드할 때도 있고, 때로는 다운로드할 때도 있다는 것입니다. 여러 프로그램이나 파일을 다운로드할 때 문제는 동일한 프로그램이 어떤 데이터가 어떤 파일에 속하는지 어떻게 알 수 있느냐는 것입니다. 사람들은 FTP를 사용하여 다운로드하면 프로그램이 두 개의 프로세스를 열 것이라고 생각합니다. 자신의 IP가 202.103.102.1이면 상대방의 IP, 즉 프로그램을 다운로드하려는 서버의 IP는 202.103.112.4입니다. 우리는 일반적으로 이렇게 생각합니다. 데이터 포트는 20이고 제어 포트는 21입니다. 물론 포트 21은 데이터 전송을 제어하기 위한 제어 명령을 전송하는 포트입니다. 두 가지 문제가 있습니다. 두 개의 파일을 동시에 다운로드할 때 프로세스를 어떻게 구분할 수 있습니까? 즉, FTP 응용 프로그램은 네트워크에서 업로드된 데이터가 어떤 파일에 속하는지 어떻게 알 수 있습니까? 포트는 데이터가 속한 유일한 식별자이기 때문입니다. 따라서 두 파일의 데이터를 동시에 전송하기 위해 포트 20을 사용하는 것은 절대 허용되지 않습니다. 실제로 포트 20은 다운로드 중에 이 포트를 사용할지 여부에 달려 있습니다. 일반적으로 두 파일의 데이터 전송은 다운로드 시 동일한 포트를 사용하지 않습니다. FTP는 일반적으로 세 개의 파일이 동시에 전송되는 경우 일시적으로 유휴 포트를 사용합니다. 가득차 있는.

이것이 FTP의 특성인데 우리가 가장 많이 사용하는 포트인 WEB 서비스 포트인 80번의 경우 WEB 서비스(HTTP 프로토콜)는 FTP 전송과 동일합니까? www.good.com/index.htm을 입력하고 다른 창에 www.good.com/image/love.htm을 입력합니다. 분명히 이들은 동일한 웹 사이트의 다른 디렉토리이므로 상대방의 IP와 포트가 두 개에 있음을 의미합니다. 각 요청마다 동일하며, 사용되는 포트와 IP도 ​​동일합니다. 그러면 윈도우는 이 윈도우의 데이터를 어떻게 구별할까요? 두 요청의 차이점을 살펴보겠습니다. 대상 서버의 관점에서는 사용자 컴퓨터의 포트만 볼 수 있고 사용자 컴퓨터의 프로그램 창은 알 수 없습니다. 포트를 기호로 사용하고 각 창을 사용하여 레이블을 제공할 수 없습니다. 그와 한 창은 첫 번째 www.good.com/index.htm을 입력한 다음 두 번째 www.good.com/image/love.htm을 입력하고 두 개의 다른 창을 입력했습니다. windows 발행 서버는 요청을 구별할 수 없으므로 이러한 차이는 자신의 컴퓨터에서만 발생할 수 있습니다. 그러면 컴퓨터의 포트 80 응용 프로그램이 어떻게 차이를 만들 수 있습니까? 요청의 유일한 차이점은 반환된 디렉터리와 구별될 수 있다는 것을 알 수 있습니다. 그러나 문제는 모든 메시지에 디렉터리 정보가 있는 것이 아니라는 점입니다. 하이퍼텍스트 요청이 다른 홈페이지를 대상으로 하는 경우에는 문제가 됩니다. 동일한 웹 사이트의 기본 프로토콜 소프트웨어는 포트만 사용하여 특정 애플리케이션에 대응할 수 있지만 포트 80은 하나만 있기 때문에 각 IE 프로세스에서 혼란을 야기합니다. 전송 계층이 데이터를 업로드할 때 애플리케이션 계층에서는 애플리케이션에 창이나 프로세스에 대한 정보가 없고 이 정보가 메시지의 데이터 세그먼트에 있지 않는 한 포트를 통해서만 올 수 있습니다. 왜냐면 데이터가 애플리케이션 계층에 도달할 때 헤더 정보가 있기 때문입니다. 각 레이어의 프로토콜에 의해 차단되고 나면 결국 데이터 세그먼트만 남게 됩니다. 그러면 IE 프로세스는 정말로 유용한 데이터를 얻기 위해 이 정보를 처리해야 합니다. 이 방법은 작동하더라도 약간 이해하기 어렵습니다. 이로 인해 응용 프로그램 소프트웨어가 과부하될 수도 있습니다. 서버는 이에 동의해야 하며 전달되는 정보에는 특정 창의 로고 정보가 포함되어 있어야 합니다.

사실 포트 80은 단지 제어 포트, 즉 명령 전송 포트일 뿐이다. 데이터 전송은 전적으로 시스템이 유휴 포트를 사용하여 정기적으로 또는 무작위로 수행된다. 이렇게 하면 문제가 쉽게 해결됩니다.

그럼 컴퓨터의 하드웨어 포트를 살펴보겠습니다. 이 포트는 네트워크 프로토콜 포트와 다릅니다. 이 포트는 다른 하드웨어 포트의 주소 지정에 참여해야 합니다. 이들은 메모리 주소 지정과 동일하지 않습니다. 각각은 독립적인 주소 지정 시스템에 해당합니다. 하드웨어 포트는 운영 체제에 대한 레지스터를 의미합니다. 여기서 레지스터는 메모리에 있는 레지스터와 다릅니다. 따라서 하드웨어를 제어할 때 우리는 일반적으로 하드웨어 포트, 즉 레지스터에 특정 명령 데이터를 씁니다. 하드웨어에 의해 수신되며 포트는 해당 채널입니다.