포트 번호: 네트워크 통신의 핵심
테이블 목차
- 서론
- 포트 번호란 무엇인가요?
- 포트 번호의 필요성
- 포트 번호의 작동 방식
- 잘 알려진 포트 번호
- 일반적인 웹 사이트 포트 번호
- 포트 번호의 확인 방법
- 포트 변경하기
- 포트 번호와 네트워크 보안
- 마치며
서론
포트 번호에 대해 알아보기 전에, TCP/IP 모델을 통해 데이터를 보낸다고 생각하고 계층별로 진행하겠습니다. 이전 동영상에서는 4계층 프로토콜인 TCP와 UDP에 대해 살펴보았습니다. 4계층은 또한 포트 번호의 선택에도 관여하며, 이에 대해 좀 더 자세히 알아보겠습니다.
😊 포트 번호란 무엇인가요?
포트 번호는 컴퓨터 네트워크에서 특정 프로세스 또는 서비스에 할당된 번호입니다. 이 포트 번호를 통해 다른 컴퓨터와 특정 어플리케이션 간의 통신이 가능해집니다. 포트 번호는 16비트 숫자로 표현되며, 0부터 65535까지의 범위를 가집니다. 이 중 0부터 1023까지의 포트 번호는 잘 알려진 포트 번호라고 불립니다.
😊 포트 번호의 필요성
우리는 포트 번호를 필요로 하는 이유는 무엇일까요? 예를 들어, 집에 사는 여러분은 우편을 받기 위해 우편함을 설치할 것입니다. 이렇게 되면 우편집배원은 우편을 우편함에 넣을 수 있게 됩니다. 컴퓨터도 이와 비슷한 방식으로 작동합니다. 여기서 우편은 어플리케이션 데이터이고, 우편함은 해당 어플리케이션의 포트 번호입니다. 이 포트 번호는 해당 서비스에 대한 컴퓨터의 접근 권한을 부여합니다. 이러한 포트 번호를 통해 데이터를 원하는 서버 또는 어플리케이션에 보낼 수 있습니다.
😊 포트 번호의 작동 방식
웹 서버에 접근하기 위해서는 웹 주소 또는 URL을 IP 주소로 변환해야 합니다. 이는 DNS(Domain Name System)을 사용하여 수행됩니다. 이렇게 얻은 IP 주소로 컴퓨터는 웹 서버에 요청을 보냅니다. 그러나 이 서버는 HTTP를 사용하는 웹 사이트뿐만 아니라 SMTP를 사용하는 메일 서버 또는 FTP를 사용하는 파일 서버일 수도 있습니다. 그렇다면 서버는 어떻게 해당 어플리케이션에 요청을 보낼까요? 이 어플리케이션들은 각각 웰노운(well-known) 포트 번호를 가지고 있습니다. 예를 들어, HTTP는 80번 포트 번호, SMTP는 25번 포트 번호, FTP는 20번과 21번 포트 번호가 할당되어 있습니다. 이러한 포트 번호는 표준 포트 번호로, 모든 컴퓨터들이 알고 있습니다. 따라서 웹 요청을 보낼 때 컴퓨터는 TCP 헤더에 대상 포트 번호로 80을 추가합니다. 컴퓨터는 또한 응답을 받을 때 임의로 생성된 소스 포트 번호를 선택합니다. 이 응답은 웹 서버의 IP 주소와 해당 서비스의 웰노운 포트 번호로 전송됩니다. 이 IP 주소와 포트 번호는 "IP주소:포트번호" 형식으로 표기됩니다. 서버는 이 요청을 받아 대상 포트 번호를 확인하고, 요청을 해당 어플리케이션에 전달합니다. 서버는 그에 따른 응답을 내려줍니다. 응답을 받았을 때 컴퓨터는 소스 포트 번호를 확인합니다. 이 포트 번호를 통해 컴퓨터는 어떤 어플리케이션에 데이터를 전달할지 결정하게 됩니다.
😊 잘 알려진 포트 번호
잘 알려진 포트 번호는 여러 개가 있습니다. 이 포트 번호들은 일반적으로 사용되는 프로토콜에 할당된 번호입니다. 다음은 그 중 일부입니다.
- HTTP: 80번 포트 번호
- HTTPS: 443번 포트 번호
- SMTP: 25번 포트 번호
- FTP: 20번과 21번 포트 번호
이 외에도 많은 포트 번호들이 존재합니다. 이러한 포트 번호들은 CCNA 시험에서만 알아야 하는 것이 아니라 일상적인 문제 해결에도 도움이 됩니다. 패킷 캡처를 확인할 때 어떤 종류의 트래픽인지 알고 싶을 때, 포트 번호들은 큰 도움을 줄 수 있습니다. 예를 들어, IP 주소와 53번 포트 번호 간의 통신을 확인하면 DNS 트래픽임을 알 수 있습니다.
일반적인 웹 사이트 포트 번호
오늘날 대부분의 웹 사이트는 포트 번호 80 대신 HTTPS를 사용하고 있습니다. HTTPS는 웹 서버와 사용자 간의 트래픽을 암호화하여 보안을 강화하는 프로토콜입니다. 그러나 이 동영상을 제작하는 시점에서는 아직 유지보수 중인 certbros.com 사이트에서는 HTTP를 사용하고 있습니다. 곧 HTTPS로 전환될 것이기 때문에 이를 감안하여 이해해 주시기 바랍니다.
포트 번호의 확인 방법
자신의 컴퓨터에서 현재 사용 중인 포트 번호를 확인하는 방법이 있습니다. 예를 들어, Windows 컴퓨터에서 PowerShell을 열고 "netstat -n" 명령어를 입력하면 현재의 커넥션 상태를 확인할 수 있습니다. 이 명령어는 숫자 형태의 값만을 보여줍니다. 여기서 로컬 주소는 컴퓨터의 주소를, 포트 번호는 소스 포트를 나타냅니다. 외부 주소는 연결하고 있는 장치의 IP 주소를 나타내며, 여기에는 목적지 포트인 잘 알려진 포트 번호인 80이 표시됩니다. 이와 같은 방법으로 다양한 커넥션과 사용되는 포트 번호들을 확인할 수 있습니다.
포트 변경하기
접속하는 포트 번호를 수동으로 변경할 수도 있습니다. 예를 들어, "certbros.com:80"을 입력하면 유지보수 페이지로 이동됩니다. 그러나 "certbros.com:53"처럼 DNS에 사용되는 포트 번호로 접근하려고 하면 해당 웹 어플리케이션으로 요청이 전송되지 않습니다. 사실, 해당 웹 서버에서 DNS 서비스로 요청을 보내려고 시도하게 됩니다. 이는 해당 웹 서버에서 실행 중인 DNS 서비스가 없기 때문에 도달할 수 없는 상황입니다.
포트 번호와 네트워크 보안
포트 번호는 네트워크 보안에 중요한 역할을 합니다. 특정 포트 번호에 대한 접근 제어와 포트 번호의 사용 여부를 통해 네트워크를 보호할 수 있습니다. 불필요한 포트는 닫아두는 것이 좋고, 필요한 포트는 열어두어야 합니다. 이를 통해 외부로부터의 침입을 방지할 수 있습니다.
마치며
포트 번호에 대한 간단한 소개였습니다. 포트 번호의 개념과 작동 방식을 이해하는 것은 컴퓨터 네트워크에 대한 기본적인 지식 중 하나입니다. 포트 번호를 적절히 활용하여 네트워크 통신을 원활하게 유지할 수 있도록 노력해야 합니다. 이 글이 여러분의 컴퓨터 네트워크 이해를 돕는 데 도움이 되었기를 바랍니다.
자료 출처: CertBros