포트(컴퓨터 네트워킹)

Port (computer networking)

컴퓨터 네트워킹에서 포트는 연결 엔드포인트를 일의로 식별하고 데이터를 특정 서비스로 전송하기 위해 할당된 번호입니다.소프트웨어 수준에서 운영 체제 에서 포트는 특정 프로세스 또는 네트워크 서비스의 유형을 식별하는 논리 구조입니다.포토는, 트랜스포트 프로토콜과 주소의 편성에 대해서, 포토 번호라고 불리는 16 비트의 부호 없는 번호에 의해서 식별됩니다.포트 번호를 사용하는 가장 일반적인 전송 프로토콜은 Transmission Control Protocol(TCP)과 UDP입니다.

포트 번호는 항상 호스트의 IP 주소 및 통신에 사용되는 전송 프로토콜 유형과 관련지어집니다.메시지의 수신처 또는 발신기지 네트워크주소가 완성됩니다.특정 포트 번호는 특정 서비스를 식별하기 위해 예약되므로 착신 패킷을 실행 중인 응용 프로그램에 쉽게 전송할 수 있습니다.이 때문에, 1024보다 작은 포토 번호는, 지금까지 가장 일반적으로 사용되고 있던 서비스를 식별해, well-known 포토 번호라고 불립니다.높은 번호의 포토는, 애플리케이션에 의한 일반적인 사용에 사용할 수 있습니다.이것을 에페메랄 포토라고 합니다.

포트는 1개의 네트워크주소에서의 복수의 서비스 또는 복수의 통신 세션에 멀티플렉싱 서비스를 제공합니다.애플리케이션 아키텍처의 클라이언트-서버 모델에서는, 같은 서비스에 대해서 복수의 동시 통신 세션을 개시할 수 있습니다.

포트 번호

포트 번호는 16비트 부호 없는 정수입니다.따라서 범위는 0 ~65535입니다TCP 의 경우, 포토 번호 0 은 예약되어 있어 사용할 수 없습니다.한편, UDP 의 경우, 송신원포트는 옵션이며, 값이 0 인 경우는 포토가 없는 것을 의미합니다.프로세스는 파일 기술자의 일종인 인터넷 소켓을 통해 입력 또는 출력 채널을 관련지어 전송 프로토콜, IP 주소 및 포트 번호와 관련짓습니다.이를 바인딩이라고 합니다.소켓은 네트워크를 통해 데이터를 송수신하는 프로세스에서 사용됩니다.operating system의 네트워킹소프트웨어에는, 모든 애플리케이션 포토로부터 네트워크에 발신 데이터를 송신해, 패킷의 IP 주소와 포토 번호를 소켓에 일치시켜, 착신 네트워크 패킷을 프로세스에 전송 하는 작업이 있습니다.TCP 의 경우, 1 개의 프로세스만이 특정의 IP 주소와 포토의 편성에 바인드 할 수 있습니다.일반적인 응용 프로그램 장애(포트 충돌이라고도 함)는 여러 프로그램이 동일한 IP 주소의 동일한 포트 번호를 동일한 프로토콜로 사용하려고 할 때 발생합니다.

공통 서비스를 구현하는 응용 프로그램에서는 클라이언트로부터 서비스 요청을 수신하기 위해 특별히 예약된 기존 포트 번호를 사용하는 경우가 많습니다.이 프로세스는 리스닝이라고 불리며, 이 리스닝 포트를 사용하여 일대일 서버 클라이언트대화상자를 확립할 가능성이 있는 기존의 포트로 요구를 수신하는 것이 포함됩니다.다른 클라이언트는 같은 리스닝 포트에 동시에 접속할 수 있습니다.이는 TCP 접속이 로컬주소, 로컬포트,[1] 리모트주소 및 리모트포트로 구성된 태플에 의해 식별되기 때문입니다.이미 알려진 포트는 Internet Assigned Numbers Authority(IANA; 인터넷 할당 번호 기관)가 감독하는 규칙에 따라 정의됩니다.대부분의 운영체제시스템에서는, 애플리케이션이 이러한 포토에 바인드 하려면 , 특별한 권한이 필요합니다.이것은, 이러한 포토가 IP 네트워크의 동작에 있어서 중요한 것으로 간주되기 때문입니다.반대로 접속 클라이언트 측에서는 일반적으로 단기간에 할당되는 높은 포트 번호(즉, 에페메랄 포트)를 사용합니다.

공통 포트 번호

IANA는 DNS 루트, IP 주소 지정 및 기타 프로토콜 리소스의 글로벌 조정을 담당합니다.여기에는 일반적으로 사용되는 포트 번호의 Well-known Internet Service 등록이 포함됩니다.

포트 번호는 well-known 포트, 등록 포트 및 다이내믹포트 또는 프라이빗포트의 3가지 범위로 나뉩니다.

well-known 포트(시스템포트라고도 불립니다)는 0 ~1023 의 번호부여 포트입니다.이 범위의 신규 할당 요건은 다른 [2]등록에 비해 엄격합니다.

주지의 포트 번호
번호 과제
20 File Transfer Protocol(FTP) 데이터 전송
21 File Transfer Protocol(FTP) 명령 제어
22 Secure Shell(SSH) 보안 로그인
23 Telnet 원격 로그인 서비스, 암호화되지 않은 텍스트 메시지
25 SMTP(Simple Mail Transfer Protocol) 이메일 전송
53 DNS(Domain Name System) 서비스
67, 68 Dynamic Host Configuration Protocol(DHCP)
80 월드 와이드 웹에서 사용되는 Hypertext Transfer Protocol(HTTP)
110 Post Office Protocol(POP3)
119 네트워크 뉴스 전송 프로토콜(NNTP)
123 Network Time Protocol(NTP)
143 IMAP(Internet Message Access Protocol) 디지털 메일 관리
161 SNMP(Simple Network Management Protocol)
194 인터넷 릴레이 채팅(IRC)
443 HTTP Secure(HTTPS) HTTP over TLS/SSL
546, 547 DHCPv6 IPv6 버전

등록된 포트는 1024 ~49151 입니다IANA는 잘 알려진 범위와 등록된 [3]범위의 공식 목록을 유지합니다.

다이내믹 포트 또는 프라이빗포트는 49152 ~65535 포트입니다이 범위의 일반적인 용도는 에페메랄 포트입니다.

네트워크 동작

전송 제어 프로토콜(TCP) 및 사용자 데이터그램 프로토콜(UDP)과 같은 전송 계층 프로토콜프로토콜 데이터 단위(PDU)를 사용하여 데이터를 전송합니다.TCP의 경우 PDU는 세그먼트, UDP의 경우 데이터그램입니다.두 프로토콜 모두 소스 및 대상 포트 번호를 나타내기 위해 머리글 필드를 사용합니다.포트 번호는 전송 프로토콜 패킷 헤더로 인코딩되며, 전송 및 수신 호스트뿐만 아니라 네트워킹인프라스트럭처의 다른 컴포넌트에서도 쉽게 해석할 수 있습니다.특히, 파이어 월(fire wall)은, 통상, 송신원포트 번호 또는 행선지 포토 번호에 근거해 패킷을 구별하도록 설정됩니다.포트 포워딩은 이 어플리케이션의 입니다.

포트 스캔

1 개의 호스트상에서 일련의 포토에 순서대로 접속하려고 하는 것을, 통상은 포토 스캔이라고 부릅니다.이는 일반적으로 악의적인 크래킹 시도 또는 그러한 공격을 방지하기 위해 발생할 수 있는 취약성을 찾는 네트워크 관리자와 관련되어 있습니다.포트 연결 시도는 호스트에 의해 자주 모니터링되고 기록됩니다.포트 노킹 기술은 클라이언트 컴퓨터에서 일련의 포트 연결(knocks)을 사용하여 서버 연결을 활성화합니다.

포트 사용의 예로는 이메일 전달이 있습니다.전자 메일의 송수신에 사용하는 서버에는, 통상은 2개의 서비스가 필요합니다.첫 번째 서비스는 다른 서버와의 사이에서 전자 메일을 전송하기 위해 사용됩니다.는 SMTP(Simple Mail Transfer Protocol)를 사용하여 수행됩니다.표준 SMTP 서비스 애플리케이션은, TCP 포토 25 로 착신 요구를 리슨 합니다.두 번째 서비스는 보통 POP(Post Office Protocol) 또는 IMAP(Internet Message Access Protocol)입니다.이 서비스는 사용자의 개인용 컴퓨터의 전자 메일 클라이언트 응용 프로그램이 서버에서 전자 메일 메시지를 가져오는 데 사용됩니다.POP 서비스는 TCP 포트 번호110을 리슨합니다.두 서비스 모두 동일한 호스트 컴퓨터에서 실행 중일 수 있습니다. 이 경우 포트 번호는 사용자의 컴퓨터 또는 다른 메일 서버 중 원격 컴퓨터에 의해 요청된 서비스를 구분합니다.

서버의 리스닝 포트 번호는 올바르게 정의되어 있습니다만(IANA는 이러한 포토를 well-known 포토라고 부릅니다), 클라이언트의 포토 번호는, 다이나믹 포토 범위로부터 선택되는 경우가 많습니다(아래를 참조).응용 프로그램에 따라서는 클라이언트와 서버는 각각 IANA에 의해 할당된 특정 포트 번호를 사용합니다.그 좋은 예로서 클라이언트가 항상 UDP 포트 68을 사용하고 서버가 항상 UDP 포트 67을 사용하는 DHCP가 있습니다.

URL에서 사용

포트 번호는 웹 또는 기타 Uniform Resource Locator(URL; 균일한 자원 로케이터)에 표시될 수 있습니다.디폴트로는 HTTP는 포트 80을 사용하고 HTTPS는 포트 443을 사용합니다만,http://www.example.com:8080/path/는 웹 브라우저가 HTTP 서버의 포트 8080에 대신 접속하도록 지정합니다.

역사

포트 번호의 개념은 ARPANET의 초기 개발자에 의해 소프트웨어 작성자와 시스템 관리자의 비공식적인 협력으로 확립되었습니다.포트 번호라는 용어는 아직 사용되지 않았습니다.네트워크 개발 초기 단계에서 소켓 번호라는 용어가 사용되기 시작했습니다.리모트 호스트의 소켓 번호는 40비트 [4]수였습니다.최초의 32비트는 현재의 IPv4 주소와 비슷하지만, 그 시점에서 가장 중요한8비트는 호스트 번호였습니다.소켓 번호의 최하위 부분(비트 33 ~40)은 Another Eightbit Number(AEN)[5]라고 불리는 엔티티였습니다.현재 네트워크 소켓은 관련성이 있지만 고유한 개념, 즉 노드 내에서만 사용되는 엔드포인트의 내부 주소를 나타냅니다.

1972년 3월 26일, Vint Cerf와 Jon Postel은 당시 사용 상황을 문서화하고 RFC 322에 소켓 번호 카탈로그를 확립할 것을 요구했습니다.네트워크 관리자는 메모를 제출하거나 [6]" HOST에 있는 네트워크 서비스 프로그램의 기능과 소켓 번호를 설명하는" 전화를 걸도록 요구받았습니다.이 카탈로그는 그 후 1972년 12월에 RFC 433으로 발행되었으며 호스트 목록과 그 포트 번호 및 네트워크 내의 각 호스트에서 사용되는 대응 기능을 포함하고 있습니다.이 첫 번째 레지스트리 기능은 주로 사용 현황에 대한 문서로서 기능하며 "유용한 퍼블릭 서비스"[5]를 위해 일부 호스트 간에 포트 번호 사용 현황이 경합하고 있음을 나타냅니다.이 문서는 1972년 5월 RFC 349에서 발표된 표준에 따라 충돌 해결을 약속하고 있습니다.이 표준에서는 Postel이 최초로 네트워크 서비스에 대한 포트 번호의 공식적인 할당을 제안하고 [7]레지스트리를 유지하기 위한 전용 관리 기능(차르라고 함)을 제안했습니다.AEN의 256개의 값은 다음 범위로 분할되었습니다.

AEN 범위
포트 번호 범위 과제
0 ~ 63 네트워크 전체의 표준 기능
64 ~ 127 호스트 고유의 기능
128 ~ 239 향후 사용을 위해 예약됨
240 ~ 255 임의의 실험 함수

Telnet 서비스는 1의 첫 번째 공식 할당을 받았습니다.세부적으로 첫 번째 과제는 다음과 같습니다.[7]

포트 할당 RFC349
포트 번호 과제
1 텔넷
3 파일 전송
5 원격 작업 항목
7 에코
9 폐기하다

초기 ARPANET에서는 AEN은 [8]소켓명이라고도 불리며 Network Control Protocol(NCP)[9][10]의 컴포넌트인 Initial Connection Protocol(ICP)과 함께 사용되었습니다.NCP는 현대 인터넷 프로토콜의 선구자였다.오늘날 용어 서비스 이름은 여전히 포트 번호와 밀접하게 관련되어 있습니다.이것은 일부 네트워크 기능에서 숫자 포트 번호를 나타내기 위해 사용되는 텍스트 문자열입니다.

레퍼런스

  1. ^ Postel, John. "RFC 793". Retrieved 29 June 2012.
  2. ^ Michelle Cotton; Lars Eggert; et al. (August 2011). Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry. IETF. doi:10.17487/RFC6335. BCP 165. RFC 6335.
  3. ^ "Port Numbers". Internet Assigned Numbers Authority (IANA).
  4. ^ RFC 36, 프로토콜 노트, S. Crocker (1970년 3월 16일)
  5. ^ a b RFC 433, 소켓 번호 목록, J. Postel, N. Neigus (1972년 12월 22일)
  6. ^ RFC 322, Well Known Socket Numbers, V. Cerf, J. Postel(1972년 3월 26일)
  7. ^ a b RFC 349, 제안된 표준 소켓 번호 J. Postel (1972년 5월 30일)
  8. ^ RFC 197, 초기 연결 프로토콜--검토 완료, A.쇼샤니, E. 하슬림(1971년 7월 14일)
  9. ^ NIC 7104, ARPANET 프로토콜 핸드북
  10. ^ Postel, Jon; Feinler, E. (1978). ARPANET Protocol Handbook. Menlo Park, CA: Network Information Center.