포트 번호는 0에서 65535 사이입니다. 번호 1~1023은 서비스에 할당되고 1024~65535는 소스를 식별하는 데 사용되는 임시 포트입니다. 포트 0은 IANA(Internet Assigned Numbers Authority) 기관에서 '예약' 포트로 할당됩니다.
포트란 무엇이며 어떻게 작동할까요?
이전 프레젠테이션에서는 IP 주소와 라우터가 주소의 접두사 부분을 기반으로, 소스 호스트에서 대상 호스트로 패킷을 라우팅하는 결정을 내리는 방식을 살펴보았습니다. 우체국으로 비유를 들며 접두사가 우편번호와 비슷하고 나머지 IP 주소는 거리 주소와 비슷하다는 점도 알아보았습니다.
우체국에 계속 비유한다면, 여기서 수신자 이름은 어떤 것을 의미할까요? 편지를 보낼 때 우리는 루실 볼(Lucille Ball)과 같은 수신자의 이름을 표기합니다. 물론 우체국에서는 수신자 이름을 볼 필요는 없지만 편지가 대상 주소에 도착하면 수신자 이름을 보고 본인에게 편지를 전달해야 합니다. 동일한 주소에 여러 사람이 거주할 수도 있기 때문입니다.
인터넷 호스트도 마찬가지입니다. 호스트는 여러 프로세스 또는 애플리케이션을 실행합니다. 예를 들어, 서버에서 웹 및 이메일과 같은 여러 서비스를 실행할 수 있습니다. 그리고 노트북과 같은 사용자 디바이스는 일반적으로 웹 브라우저 및 이메일 리더와 같은 여러 클라이언트를 실행합니다. 패킷이 호스트에 도착하면 어떤 프로세스로 전달해야 하는지 어떻게 결정할 수 있을까요? 바로 TCP와 UDP가 이러한 결정을 내립니다.
TCP(Transmission Control Protocol) 및 UDP(User Datagram Protocol):
- TCP/IP라고도 하는 IP(인터넷 프로토콜) 제품군의 일부인가요?
- 이 프로토콜은 전송 레이어를 형성하고 프로세스 간 통신을 정의합니다.
- TCP 및 UDP는 포트 번호로 통신 엔드포인트를 식별합니다. 포트 번호는 편지의 수신자 이름과도 같습니다.
TCP에 대해 자세히 알아보겠습니다. TCP는 송신자로부터 수신자에게 바이트 스트림을 전송하는 데 사용됩니다. TCP는 신뢰할 수 있는 정렬된 바이트 스트림 전달을 보장합니다. IP만으로는 정렬이나 전달이 보장되지 않습니다. IP 패킷은 삭제될 수도 있습니다. TCP는 스트림을 세그먼트로 분할하고 시퀀스 번호와 함께 IP 패킷의 각 세그먼트를 전달함으로써 순서대로 전달하도록 보장합니다. 수신자는 수신된 세그먼트에 대한 확인을 송신자에게 다시 보내고, 송신자는 제한 시간 후에 수신이 확인되지 않은 세그먼트를 재전송합니다.
이제 UDP로 넘어가보겠습니다. UDP는 송신자로부터 수신자에게 데이터그램을 전송하는 데 사용됩니다. 데이터그램은 IP 패킷으로 전달됩니다. UDP 데이터그램은 전달을 보장하지 않습니다. UDP 데이터그램과 IP 패킷의 유일한 주요 차이점은 포트 번호입니다.
프로세스는 16비트 번호로 식별되는 포트를 통해 통신합니다. 소스와 대상의 포트 번호가 각 IP 패킷에 추가됩니다. 포트 번호는 IP 주소에 :<port-number>를 추가해 작성되기도 합니다.
각 호스트는 포트 번호를 프로세스에 매핑하는 테이블을 유지 관리하며, 패킷이 호스트에 도착하면 호스트는 이 테이블을 사용해 패킷을 올바른 프로세스로 라우팅할 수 있습니다. 이 예에서 대상 포트 443이 두번째 행과 일치하므로 패킷은 웹 서버로 전달됩니다.
그렇다면 포트 번호는 어떻게 결정될까요? 서버의 경우 서비스는 잘 알려진 포트 번호(1~1023)에서 수신 대기합니다. 예를 들어
- 웹(HTTP)은 포트 80,
- 보안 웹(HTTPS)은 포트 443,
- DNS는 포트 43을 사용합니다.
클라이언트는 요청된 서비스에 해당하는 대상 포트 번호를 선택합니다. 이 예에서는 HTTPS 서비스와 통신하고 있으므로 대상 포트 번호는 443입니다.
소스 포트 번호에서는 클라이언트가 임시 포트(1024~65535)에서 통신을 시작합니다. 해당 범위에서 현재 사용되지 않는 포트 번호를 선택합니다. 이 예에서 클라이언트는 포트 번호 12627을 선택했으므로 이 번호가 소스 포트 번호입니다.
서버가 응답하면 이때 소스와 대상이 바뀝니다.
그렇다면 이러한 IP 주소는 어떻게 결정할까요? 네이밍 서비스를 사용합니다. 다음 프레젠테이션의 주제이기도 합니다.
그러나 주소 지정을 마치기 전에 우체국 비유를 다시 살펴보면서 요약해 보겠습니다. 포트 번호는 수신자 이름과 같습니다. 주소의 거주자만 수신자 이름을 확인해야 하는 것처럼 호스트에서만 포트 번호를 확인하면 됩니다. IP 주소를 살펴볼 때 IP 주소에서 접두사를 나누어 접두사는 우편번호, 나머지 IP 주소는 거리 주소와 같다고 설명했습니다. 이 예에서는 90210 우체국만 거리 주소를 확인하면 되는 것처럼 MIT 네트워크의 라우터만 전체 IP 주소를 확인하면 됩니다. 그리고 90210 이외 우체국에서 편지를 전달하기 위해 우편번호만 확인하듯이 MIT 외 위치에서도 패킷을 라우팅하는 데 접두사만 있으면 됩니다.
요약하면, 웹 요청 및 응답과 같은 애플리케이션 메시지는 IP 패킷에 저장됩니다. 암호화되기도 합니다. IP 패킷은 소스 및 대상 IP 주소와 포트 번호를 사용해 처리됩니다.
인터넷 프로토콜 주소 또는 IP 주소는 네트워크 연결을 통해 데이터를 전달하는 데 사용됩니다. 이 주소는 고유한 식별자 역할을 하는 숫자 문자열로 구성됩니다. 포트 번호는 이 문자열에 추가되는 부호 없는 16비트 정수이며 콜론으로 구분됩니다(예: 17.253.207.54). 443. 이 추가된 번호를 '포트 번호'라고 하며 서버에 도착하면 인터넷 트래픽의 방향을 결정하는 데 사용됩니다. TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 데이터 패킷을 올바른 프로세스로 라우팅하는 데 사용됩니다. 수많은 포트 번호가 있으며 포트는 인터넷이 작동하는 방식에서 중요한 역할을 합니다.
포트는 어떻게 작동하나요?
컴퓨터 포트는 컴퓨팅이 시작된 이래로 계속 사용되어 왔습니다. 포트 번호의 개념은 ARPANET(Advanced Research Projects Agency Network)에서 시작되었습니다.
포트는 연결 엔드포인트를 식별하고 데이터를 서비스에 전달하는 데 사용됩니다. 포트에는 가상 포트와 물리적 포트가 있습니다. USB 포트는 물리적 포트의 예로, 컴퓨터 포트라고 하면 바로 떠올리는 포트 중 하나입니다. 그러나 가상 포트는 훨씬 더 널리 사용되고 있으며, 인터넷 작동 방식을 이야기할 때 가상 포트를 빼놓을 수 없습니다. 포트는 인터넷 OSI 모델의 전송 레이어, 레이어 4에 속해 있습니다.
포트 작동 방식을 설명하려면 'Lucille Ball, 1000 Roxbury Drive, Beverly Hills, CA 90210'으로 보내는 편지의 비유로 되돌아 가야 합니다. 이 비유는 IP 주소를 통해 대상에 편지를 전달하는 방법을 이해하는 데 도움이 됩니다. 편지 전달 비유에서, 편지가 최종 주소에 도달하면, 편지의 이름은 편지를 받을 사람이 누구인지 구체적으로 식별합니다. 여기서 포트는 루실 볼이란 이름에 대응합니다.
0에서 65535 사이의 많은 가상 포트가 있습니다. 인터넷 프로토콜 TCP와 UDP는 데이터 패킷이 전송되는 프로세스를 결정합니다. 서버 및 클라이언트 스키마에 기반하며, 이 주제는 HTTP(Hypertext Transfer Protocol) 및 HTTPS관련 페이지에서 다룹니다.
호스트란 무엇인가요?
서버와 같은 호스트는 종종 웹 및 이메일과 같은 여러 프로세스나 애플리케이션을 실행합니다. 각 호스트는 포트 번호를 프로세스에 매핑하는 테이블을 유지 관리하며, 데이터 패킷이 호스트에 도착하면 호스트는 이 테이블을 사용해 패킷을 올바른 프로세스나 서비스로 라우팅합니다. 노트북과 같은 엔드포인트 디바이스는 일반적으로 웹 브라우저 및 이메일 리더와 같은 여러 클라이언트를 실행합니다. TCP와 UDP는 데이터 패킷이 대상 주소에 도착했을 때 이를 전송하는 위치를 결정하는 프로토콜입니다. 둘 다 직접 트래픽을 전달하지만, 기능은 서로 다릅니다.
TCP란 무엇인가요?
TCP(Transmission Control Protocol)는 바이트 스트림을 사용해 송신자로부터 수신자에게로 데이터를 전송합니다. TCP의 핵심은 바이트 스트림의 안정적인 순서대로 전달하는 기능입니다. IP 패킷이 라우팅 중에 삭제될 수 있기 때문에 이 기능이 필요합니다. TCP는 스트림을 세그먼트로 분할하고 시퀀스 번호와 함께 IP 패킷의 각 세그먼트를 전달함으로써 순서대로 전달하도록 보장합니다. 수신자는 IP 패킷 시퀀스의 수신을 확인합니다. IP 패킷 시퀀스의 수신이 확인되지 않으면 송신자는 제한 시간 이후에 수신되지 않은 세그먼트를 재전송합니다.
UDP란 무엇인가요?
UDP와 TCP의 가장 큰 차이점은 전달이 보장되지 않는다는 점입니다. UDP는 송신자로부터 수신자에게 데이터그램을 전송하는 데 사용됩니다. 데이터그램은 IP 패킷으로 전달됩니다. 포트 번호는 UDP 데이터그램과 IP 패킷 사이의 유일한 중요한 차이점입니다. 그러나 전송이 보장되지 않기 때문에 이메일 및 웹사이트와 같이 안전하고 신뢰할 수 있는 데이터 전송을 요구하는 서비스에는 TCP 포트가 적합합니다.
서비스에 대한 포트 번호 예
65,535개의 포트 번호를 사용할 수 있습니다. 서비스는 1~1023의 잘 알려진 포트 번호에서 수신 대기합니다. 가장 많이 사용되는 서비스 포트 번호는 다음과 같습니다.
- 포트 80: 웹(HTTP)
- 포트 443: 보안 웹(HTTPS)
- 포트 43: DNS(도메인 네임 시스템)
- 포트 3389: 원격 데스크톱 프로토콜(RDP)
- 포트 21: FTP(파일 전송 프로토콜)
- 포트 22: SSH(Secure Shell), 보안 네트워크 연결을 생성하는 데 사용되는 터널링 프로토콜
IP 주소 예에서 17.253.207.54: 443이므로, 통신은 HTTPS, 즉 포트 443을 통해 이루어집니다.
소스 포트 번호
소스 포트 번호는 1024~65535의 '임시 포트'를 사용합니다. 해당 범위 내에서 현재 사용되지 않는 포트 번호를 선택할 수 있습니다.
포트 번호 목록은 IANA(Internet Assigned Numbers Authority) 기관에서 유지 관리합니다. 포트 0은 IANA에서 예약 포트로 할당했으므로 사용할 수 없습니다.
Akamai, 포트 및 온라인 공격 방지
클라우드 기반 사이버 공격은 어디서나 발생할 수 있습니다. Akamai는 해커와 사이버 범죄자가 이용하는 인터넷 기반 웹 악용 사례를 근절하기 위해 노력하고 있습니다. 웹 서버에 대한 DDoS(Distributed Denial-of-Service) 공격은 IP 패킷의 손실로 이어질 수 있습니다. 보호되지 않은 포트 또는 취약점 악용을 허용하는 포트는 잘 알려진 공격 기법니다. Akamai의 전용 인프라는 DDoS 공격을 클라우드에서 차단하도록 설계되어 공격이 애플리케이션, 데이터 센터, 인터넷 기반 인프라(퍼블릭 또는 프라이빗)에 도달하지 못하도록 합니다. Akamai의 독보적인 아키텍처는 DNS 리소스를 중복되지 않는 전용 클라우드 전반에 걸쳐 세그멘테이션합니다. 225명이 넘는 일선의 SOCC 응답자가 Akamai를 지지하고 있습니다. Akamai의 완벽한 매니지드 솔루션은 공격 트래픽을 걸러내고 가장 치명적인 공격도 차단하기 때문에 보안팀 직원은 우선순위가 높은 보안 프로그램에 집중할 수 있습니다. Akamai는 오늘날 기업을 클라우드 및 분산된 인력으로 인해 발생하는 취약점으로부터 보호합니다.
Akamai와 사이버 보안
사이버 보안에 대한 Akamai의 권한은 IP, HTTP, HTTPS와 같은 프로토콜 및 포트의 작동 방식에 대한 깊은 이해를 바탕으로 구축되었습니다. Akamai는 보안뿐만 아니라 클라우드 컴퓨팅 솔루션 제품군을 통해 클라우드 컴퓨팅을 최적화하고, 보안, 확장성 및 가시성을 제공하며, 클라우드 서비스 사업자에 구애되지 않습니다. Akamai의 클라우드 컴퓨팅 제품군에는 대규모 HTTP 파일 다운로드를 전 세계적으로 언제나 완벽하게 최적화하는 Download Delivery 제품 라인이 포함되어 있습니다.
자주 묻는 질문(FAQ)
포트는 가상 또는 물리적으로 존재하며, 네트워크의 시작과 끝을 식별하는 데 사용됩니다. 가상 포트에는 연결 엔드포인트를 식별하고 데이터를 특정 서비스나 프로세스에 전달하는 데 사용되는 16비트의 고유한 숫자가 할당됩니다. 포트는 디바이스에 들어갈 때 이메일 및 웹페이지 등 다양한 종류의 트래픽을 전달하는 데 사용됩니다.
포트는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)라는 두 가지 종류의 프로토콜을 사용합니다. TCP는 바이트 스트림의 순차적 전달을 사용해 패킷을 스트림으로 분할하므로 보다 안정적인 서비스를 제공합니다. 수신 확인되지 않은 스트림은 다시 전송됩니다.
공격자는 포트를 스캔해 악용될 수 있는 열린 포트를 찾을 수 있습니다. 방화벽은 보안 룰에 따라 트래픽을 차단하거나 허용합니다. 해커는 열린 포트를 악용해 악성 트래픽을 전송하려고 합니다. 방화벽은 이메일용 포트 25, HTTP 웹 트래픽용 포트 80, 보안 HTTPS 웹 트래픽용 포트 443과 같은 일부 필수 서비스를 제외한 모든 포트에 대한 트래픽을 차단합니다. 그리고 RDP 트래픽용 포트 3389도 잘 알려진 공격 벡터로 이를 통해 해커가 RDP의 취약점을 찾아 랜섬웨어 공격 및 기타 악용에 사용합니다.
서버와 같은 호스트는 종종 웹 및 이메일과 같은 여러 프로세스나 애플리케이션을 실행합니다. 각 호스트는 포트 번호를 프로세스에 매핑하는 테이블을 유지 관리하며, 데이터 패킷이 호스트에 도착하면 호스트는 이 테이블을 사용해 패킷을 올바른 프로세스나 서비스로 라우팅합니다. 노트북과 같은 엔드포인트 디바이스는 일반적으로 웹 브라우저 및 이메일 리더와 같은 여러 클라이언트를 실행합니다. TCP와 UDP는 데이터 패킷이 대상 주소에 도착했을 때 이를 전송하는 위치를 결정하는 프로토콜입니다. 둘 다 직접 트래픽을 전달하지만, 기능은 서로 다릅니다.
TCP(Transmission Control Protocol)는 바이트 스트림을 사용해 송신자로부터 수신자에게로 데이터를 전송합니다. TCP의 핵심은 바이트 스트림의 안정적인 순서대로 전달하는 기능입니다. IP 패킷이 라우팅 중에 삭제될 수 있기 때문에 이 기능이 필요합니다. TCP는 스트림을 세그먼트로 분할하고 시퀀스 번호와 함께 IP 패킷의 각 세그먼트를 전달함으로써 순서대로 전달하도록 보장합니다. 수신자는 IP 패킷 시퀀스의 수신을 확인합니다. IP 패킷 시퀀스의 수신이 확인되지 않으면 송신자는 제한 시간 이후에 수신되지 않은 세그먼트를 재전송합니다.
UDP와 TCP의 가장 큰 차이점은 전달이 보장되지 않는다는 점입니다. UDP는 송신자로부터 수신자에게 데이터그램을 전송하는 데 사용됩니다. 데이터그램은 IP 패킷으로 전달됩니다. 포트 번호는 UDP 데이터그램과 IP 패킷 사이의 유일한 중요한 차이점입니다. 그러나 전송이 보장되지 않기 때문에 이메일 및 웹사이트와 같이 안전하고 신뢰할 수 있는 데이터 전송을 요구하는 서비스에는 TCP 포트가 적합합니다.
고객이 Akamai를 선택하는 이유
Akamai는 온라인 비즈니스를 지원하고 보호하는 사이버 보안 및 클라우드 컴퓨팅 기업으로, 시장을 대표하는 보안 솔루션, 탁월한 위협 인텔리전스, 글로벌 운영팀이 어디서나 기업 데이터와 애플리케이션을 보호하기 위한 심층 방어 기능을 제공한다. Akamai의 풀스택 클라우드 컴퓨팅 솔루션은 세계에서 가장 분산된 플랫폼에서 성능과 경제성을 제공한다. 글로벌 기업들은 비즈니스 성장에 필요한 업계 최고의 안정성, 확장성, 전문성을 제공하는 Akamai를 믿고 신뢰한다.