-
포트(Port)EDI 관련 기술 용어 2023. 1. 20. 10:30
인터넷 통신의 최종 목적은 한 프로세스가 다른 프로세스와 통신할 수 있게 하는 것입니다.
따라서 통신을 위해서는 프로세스 식별 주소가 있어야합니다.
TCP/IP 구조에서는 포트 주소를 이용하여 프로세스를 식별합니다.
오늘은 포트에 대해서 알아보도록 하겠습니다.
포트(Port)란?
포트는 일종의 데이터를 주고 받는 통로로, 데이터의 목적지가 어떤 프로그램인지 구분하는 역할을 합니다.
TCP 헤더에는 많은 정보가 담겨있습니다.
그 안에 출발지 포트 번호와 목적지 포트번호가 포함되어 있습니다.
TCP헤더에 포트 번호가 있기 때문에 애플리케이션이 메일 프로그램 인지 웹브라우저 인지 구분할 수 있게 됩니다.
다른 응용 프로그램 프로세스들은 접속할 때마다 포트번호가 새로 부여됩니다.
포트번호는 0부터 65535까지이며, 0부터 1023까지는 어떤 특권을 가진 서비스에 의해 사용될 수 있도록 예약되어 있습니다.
잘 알려진 포트
CP/IP의 상위 프로토콜을 사용하는 응용 프로그램에서는 인터넷번호 할당 허가위원회(IANA)에 의해 미리 지정된 포트번호들을 가지고 있습니다.
이렇게 미리 지정된 포트번호들을 '잘 알려진 포트들(Well known ports)'이라고 합니다.
여기서 포트번호는 0~1023번 포트입니다.
21번 : FTP(File Transfer Protocol) : FTP 연결 시 인증과 컨트롤을 위한 포트
23번 : Telnet(Telecommunication Network) : 인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 때 사용하는 포트
25번 : SMTP(Simple Mail Transfer Protocol) : 메일을 보낼 때 사용하는 포트
80번 : HTTP(Hyper Text Transfer Pro0tocol): 웹 서비스를 사용하기 위한 포트
이 외 등록된 포트((Registered ports): 1024~49151), 동적 포트((Dynamic or Private ports): 49152~65535)로 지정되어 있습니다.
여기서 등록된 포트의 예시로는 톰캣(Tomcat)에서의 8080번으로, HTTP 포트(80번)를 대체할 수 있는 포트가 있습니다.
이처럼 동작하는 애플리케이션은 각각 포트 번호가 있어서 다른 애플리케이션과 서로 구분됩니다.
따라서 어떤 애플리케이션이 사용되고 있는지 알기 위해 포트 번호가 필요합니다.
포트 바인딩(Port Binding)
앞서 본 것처럼 서버 안에는 한 가지 응용 프로그램이 있는 게 아니라 여러 개가 존재합니다.
서로 다른 프로그램들이 데이터를 전달 받을 수 있도록 포트 번호를 지정합니다.
또한 서버는 서비스를 제공하는 쪽이기 때문에, 클라이언트의 요청을 수신 대기 중인 상태인데 이것을 ‘listening’ 상태라고 합니다.
따라서 서버 안의 응용 프로그램들은 포트 번호를 하나씩 점유하고, 리스닝 중인데 이러한 상태를 바인딩이라고 합니다.
이때 서버는 클라이언트의 요청을 리스닝 중이기 때문에 고정 포트를 바인딩합니다.
클라이언트는 서버에 서비스를 요청할 때 포트번호를 할당 받은 뒤, 포트 번호가 사라지기 때문에 고정 포트를 사용하지 않고 자동 할당되는 포트 번호를 사용합니다.
응용 프로그램이 하나의 포트번호를 지정하면 다른 응용 프로그램은 지정된 포트번호를 지정할 수 없으며, 앞서 말씀 드린 것과 같이 포트 번호는 0에서 65535번 사이로 지정됩니다.
특정 애플리케이션은 0~1023번으로 지정되어 있으며, 클라이언트는 동적 포트 번호인 49152 ~ 65535번을 사용합니다.
[참고 자료]
'EDI 관련 기술 용어' 카테고리의 다른 글
클라우드와 온프레미스 비교 (0) 2023.04.14 매핑(Mapping) (0) 2023.03.17 WSDL(Web Services Description Language) (0) 2022.12.30 VPN(Virtual Private Network) (0) 2022.12.16 정규 표현식(Regular Expression) (0) 2022.12.02