컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 포트가 없다는 것은 무엇을 의미하나요?

포트가 없다는 것은 무엇을 의미하나요?

컴퓨터 "포트"는 포트를 영어로 번역한 것으로 컴퓨터와 외부 세계 사이의 통신을 위한 출구라고 볼 수 있습니다. 하드웨어 분야의 포트는 USB 포트, 직렬 포트 등과 같은 인터페이스라고도 합니다. 소프트웨어 분야의 포트는 일반적으로 연결 서비스와 비연결 서비스를 위한 네트워크의 통신 프로토콜 포트를 의미하며 일부 데이터 구조와 I/O(기본 입력 및 출력) 버퍼를 포함하는 추상적인 소프트웨어 구조입니다.

먼저 연결 지향 및 연결 없는 프로토콜(Connection-Oriented and Connectionless Protocols)을 이해할 수 있습니다.

연결 지향 서비스의 주요 특징은 다음과 같습니다. 연결 지향 서비스는 세 단계를 거칩니다. : 데이터 전송 데이터가 전송되기 전에 먼저 연결이 이루어지고, 연결이 이루어진 후에 데이터가 전송되며, 연결이 해제됩니다. 연결 지향 서비스는 데이터 전송 순서와 전송 신뢰성을 보장할 수 있습니다.

비연결 서비스의 특징은 다음과 같습니다. 비연결 서비스에는 데이터 전송 단계만 있습니다. 데이터 통신 이외의 오버헤드를 제거합니다. 보내는 엔터티가 활성화되어 있는 한 수신 엔터티도 활성화될 필요는 없습니다. 유연하고 편리하며 빠르다는 장점이 있으며 특히 소수의 산발적인 메시지를 전송하는 데 적합합니다. 그러나 비연결형 서비스는 메시지의 손실, 중복 또는 혼란을 방지할 수 없습니다.

'연결 지향 서비스'와 '무연결 서비스'의 개념을 구별하세요. 특히 간단하고 생생한 예는 전화 걸기와 편지 쓰기입니다. 두 사람이 전화 통화를 하려면 먼저 연결을 설정해야 합니다. 즉, 번호로 전화를 걸고 서로에게 정보를 전송하기 전에 응답을 기다린 다음 마지막으로 연결을 해제하고 전화를 끊어야 합니다. 편지를 쓰는 방법은 그리 복잡하지 않습니다. 주소와 이름을 입력한 후 우편함에 넣기만 하면 받는 사람이 받게 됩니다. TCP/IP 프로토콜은 네트워크 계층에서 연결이 없습니다(데이터 패킷은 인터넷으로만 전송되며, 전송 및 도착 방법, 도착 여부는 네트워크 장치에서 관리됩니다). "포트"는 전송 계층의 내용이며 연결 지향적입니다. 프로토콜에서 1024 미만의 포트는 정확한 정의를 가지며 인터넷의 일부 일반적인 서비스에 해당합니다. 이러한 일반적인 서비스는 TCP 포트를 사용하는 방식(전화 통화 등 연결 기반)과 UDP 포트를 사용하는 방식(편지 쓰기 등 비연결 방식)으로 나눌 수 있습니다.

이름을 지정하고 주소를 지정할 수 있는 네트워크의 통신 포트는 운영 체제에서 할당 가능한 리소스입니다. 7계층 네트워크 OSI(개방형 시스템

상호 연결 참조 모델) 프로토콜에 따르면 전송 계층과 네트워크 계층의 가장 큰 차이점은 전송 계층이 프로세스 통신 기능을 제공한다는 점입니다.

네트워크 통신의 최종 주소에는 호스트 주소뿐만 아니라 프로세스를 설명할 수 있는 일종의 식별자도 포함됩니다. 따라서 TCP/IP 프로토콜에서 제안하는 프로토콜 포트는 네트워크 통신 프로세스의 식별자로 간주될 수 있다.

애플리케이션(일반적으로 메모리에 로드되어 실행된 후 프로세스라고 함)이 시스템 호출을 통해 특정 포트와 연결(바인딩, 바인딩)을 설정한 후 전송에 의해 해당 포트로 데이터가 전송됩니다. 해당 프로세스가 전송 계층으로 수신하고 전송하는 데이터는 이 포트에서 출력됩니다. TCP/IP 프로토콜 구현에서 포트 작업은 일반 I/O 작업과 유사합니다. 프로세스를 통해 포트를 얻는 것은 일반적인 읽기 및 쓰기 방법을 사용하여 액세스할 수 있는 로컬 및 고유 I/O 파일을 얻는 것과 같습니다. .

파일 설명자와 마찬가지로 각 포트에는 포트 번호라는 정수 설명자가 있으며, 이는 서로 다른 포트를 구별하는 데 사용됩니다. TCP/IP 전송 계층의 TCP 및 UDP 프로토콜은 완전히 독립적인 두 개의 소프트웨어 모듈이므로 해당 포트 번호도 서로 독립적입니다. 예를 들어 TCP의 포트 번호는 255이고 UDP의 포트 번호는 255일 수도 있습니다. 둘 사이에는 충돌이 없습니다.

포트 번호에는 두 가지 기본 할당 방법이 있습니다. 첫 번째는 중앙 집중식 할당 방법으로, 인정받고 권위 있는 중앙 기관이 사용자 요구에 따라 균일하게 할당하고 그 결과를 대중에게 공개합니다. 두 번째는 동적 연결이라고도 알려진 로컬 할당입니다. 즉, 프로세스가 전송 계층 서비스에 액세스해야 할 때 로컬 운영 체제에 적용되고 운영 체제는 로컬 고유 포트 번호를 반환하고 프로세스는 그런 다음 적절한 시스템 호출을 사용하여 자체적으로 연결하고 포트가 연결됩니다(바인딩, 바인딩). TCP/IP 포트 번호 할당은 위의 두 가지 방법을 결합한 것으로, 포트 번호를 두 부분으로 나누어 소량의 예비 포트를 사용하여 전역적으로 서비스 프로세스에 할당합니다. 각 표준 서버에는 Zhouzhikou라는 전역적으로 인식되는 포트가 있습니다. 다른 시스템에서도 포트 번호는 동일합니다. 나머지 포트는 사용 가능한 포트이며 로컬로 할당됩니다. TCP와 UDP에서는 256보다 작은 포트는 예약된 포트로 사용할 수 있다고 규정하고 있습니다.

포트 번호는 세 가지 범주로 나눌 수 있습니다:

(1) 잘 알려진

포트: 0부터 1023까지, 밀접하게 바인딩되어 있습니다. 일부 서비스에 바인딩 .

일반적으로 이러한 포트에서의 통신은 특정 서비스의 프로토콜을 명확하게 나타냅니다. 예: 포트 80은 실제로 항상 HTTP 통신입니다.

(2) 등록된

포트: 1024에서 49151까지. 일부 서비스와 느슨하게 연결되어 있습니다. 이는 이러한 포트에 많은 서비스가 바인딩되어 있으며 이러한 포트가 다른 많은 목적으로도 사용된다는 것을 의미합니다. 예를 들어 많은 시스템은 1024 주변에서 시작하는 동적 포트를 처리합니다.

(3) 동적 및/또는 개인

포트: 49152에서 65535까지. 이론적으로 이러한 포트는 서비스에 할당되어서는 안 됩니다. 실제로 컴퓨터에는 일반적으로 1024부터 시작하는 동적 포트가 할당됩니다. 그러나 예외도 있습니다. SUN의 RPC 포트는 32768에서 시작됩니다.

시스템 관리자는 포트를 "리디렉션"할 수 있습니다.

일반적인 기술은 포트를 다른 주소로 리디렉션하는 것입니다. 예를 들어 기본 HTTP 포트는 80인데 많은 사람들이 이를 8080과 같은 다른 포트로 리디렉션합니다. 이것이 변경된 경우 이 문서에 액세스하려면 대신 다음 주소(8080/net/port.htm)를 사용해야 합니다(물론 이는 이론적인 예일 뿐입니다).

인식된 기본 포트를 숨기고 피해율을 줄이기 위해 리디렉션이 구현됩니다. 이처럼 누군가가 인식한 기본 포트를 공격하고자 한다면 먼저 포트 스캔을 수행해야 한다. 대부분의 포트 리디렉션은 원래 포트와 유사합니다. 예를 들어 대부분의 HTTP 포트는 80: 81, 88, 8000, 8080, 8888에서 변경됩니다. 마찬가지로 POP 포트는 원래 110이지만 종종 1100으로 리디렉션됩니다. 1234, 23456, 34567 등 특별한 통계적 유의성을 갖는 숫자를 선택하는 경우도 많다. 많은 사람들이 홀수인 42, 69, 666, 31337을 선택하는 다른 이유가 있습니다. 최근에는 점점 더 많은 원격 제어 트로이 목마(

원격 액세스 트로이 목마, RAT)가 동일한 기본 포트를 사용하고 있습니다. 예를 들어 NetBus의 기본 포트는 12345입니다. Blake R.

Swopes는 리디렉션된 포트를 사용하는 또 다른 이유가 있다고 지적했습니다. UNIX 시스템에서 1024 미만의 포트를 수신하려면 루트 권한이 필요합니다. 루트 권한이 없고 웹 서비스를 열려면 더 높은 포트에 설치해야 합니다. 또한 일부 ISP의 방화벽은 낮은 포트의 트래픽을 차단하므로 전체 시스템을 소유하더라도 여전히 포트를 리디렉션해야 합니다.

上篇: JD.COM 1 위안 예약은 어떻게 되나요? 下篇: 초보자에게 풍수 방면의 책 몇 권을 소개하다.
관련 내용