Corgi 혼자 공부하는 네트워크 4-1 공부 기록
본문 바로가기
개발자 일상/혼자 공부하는 네트워크

혼자 공부하는 네트워크 4-1 공부 기록

by 짱아아빠 2024. 9. 22.
반응형

전송 계층 개요: IP의 한계와 포트

IP의 한계

  • 신뢰할 수 없는 통신: IP(Internet Protocol)는 패킷이 수신지까지 제대로 도착했는지 보장하지 않는 비신뢰성 있는 통신 방식입니다. 전송 과정에서 패킷이 손실되거나, 손상되거나, 순서가 뒤바뀌어 도착할 수 있습니다. 이런 특성은 '최선형 전달'이라고 하며, 이는 최대한 노력은 하겠지만 결과에 대해서는 보장하지 않는다는 뜻입니다. 예를 들어, 웹에서 이미지나 동영상이 깨져서 보이는 경우가 있을 수 있는데, 이는 IP가 보장하지 않는 신뢰성의 한계를 보여줍니다.
  • 비연결형 통신: IP는 송신자와 수신자가 통신하기 전에 별도의 연결 설정을 하지 않고, 목적지로 패킷을 보내는 방식을 사용합니다. 이는 성능 측면에서 이점이 있지만, 통신 상태를 확인하거나 재전송을 요구할 수 없습니다. 예를 들어, 네트워크가 혼잡할 때, 패킷이 유실되더라도 이를 다시 보내지 않기 때문에, 수신자 측에서는 해당 데이터가 손실된 상태로 남을 수 있습니다.

IP의 한계를 보완하는 전송 계층

  • 전송 계층의 주요 역할: IP의 비신뢰성과 비연결형 특성은 상위 계층인 전송 계층에서 보완됩니다. 전송 계층은 TCPUDP라는 두 가지 주요 프로토콜을 통해 통신의 신뢰성과 성능을 관리합니다.
  • 연결형 통신(TCP): TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 보장하는 연결형 통신 프로토콜입니다. 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정하고, 데이터가 손실되거나 손상되면 재전송하는 등의 방법을 통해 데이터의 무결성과 순서를 보장합니다. 또한, 데이터가 순서대로 전달되지 않은 경우에도, 수신자는 이를 올바른 순서로 다시 배열할 수 있습니다. TCP는 이러한 신뢰성 때문에, 웹 브라우징, 파일 전송, 이메일과 같은 응용 프로그램에서 많이 사용됩니다.
  • 비연결형 통신(UDP): UDP(User Datagram Protocol)는 TCP보다 성능이 중요한 응용 프로그램에서 사용되는 프로토콜입니다. UDP는 연결 설정 과정 없이 데이터를 빠르게 전송하며, 신뢰성을 보장하지 않습니다. 패킷이 손실되거나 순서가 바뀌더라도 재전송하지 않습니다. 주로 비디오 스트리밍, 실시간 게임 등의 응용 프로그램에서 사용되며, 지연을 줄이는 것이 중요한 상황에서 활용됩니다.

응용 계층과의 연결 다리, 포트

  • 포트의 역할: 포트는 네트워크 통신에서 매우 중요한 역할을 합니다. 전송 계층은 패킷을 주고받을 때 송신자와 수신자 간의 데이터를 구분하기 위해 포트 번호를 사용합니다. 포트는 특정 응용 프로그램이 사용하는 통신 채널을 구분해주며, 이를 통해 다수의 응용 프로그램이 동시에 하나의 네트워크 연결을 사용할 수 있습니다.
  • 포트 번호의 범위:
    1. 잘 알려진 포트(0~1023): 이 범위의 포트는 시스템 서비스에 예약되어 있습니다. 예를 들어, HTTP(80), HTTPS(443), FTP(21) 등은 전 세계적으로 동일하게 사용하는 표준 포트입니다.
    2. 등록된 포트(1024~49151): 주로 특정 응용 프로그램이 사용하는 포트로, 운영체제나 소프트웨어에 의해 할당됩니다. 일반적인 응용 프로그램과 서버 서비스가 이 포트를 사용합니다.
    3. 동적 포트(49152~65535): 이 범위는 클라이언트가 임시로 사용하는 포트입니다. 주로 웹 브라우저나 다른 네트워크 클라이언트가 서버와 통신할 때 이 범위의 포트를 사용하여 임시로 연결을 설정합니다.
  • 포트의 활용 예시: 예를 들어, 192.168.0.15:8000이라는 주소는 192.168.0.15라는 IP 주소를 가진 장치에서 포트 8000을 사용하는 애플리케이션에 접속하는 것을 의미합니다.

포트 기반 NAT

  • NAT(Network Address Translation): NAT는 사설 IP 주소를 공인 IP 주소로 변환하여, 네트워크 내부에서 사용하는 사설 IP를 외부에서 사용할 수 있게 만듭니다. NAT 변환 테이블은 사설 IP와 공인 IP를 연결하는 역할을 하며, 외부 네트워크로부터 들어온 패킷을 해당 사설 IP로 전달해 줍니다.
  • NAPT(Network Address and Port Translation): NAPT는 포트 번호를 기반으로 다수의 내부 IP 주소가 하나의 공인 IP 주소를 공유할 수 있도록 해주는 기술입니다. NAPT를 통해 네트워크 내부의 여러 장치들이 하나의 공인 IP 주소를 사용하면서도, 각기 다른 포트를 통해 외부와 통신할 수 있습니다.
  • 포트 포워딩: 포트 포워딩은 네트워크 외부에서 특정 포트로 접근한 데이터를 네트워크 내부의 특정 장치로 전달해주는 기능입니다. 이를 통해 네트워크 내부 서버에 외부에서 접근할 수 있도록 설정할 수 있습니다. 예를 들어, 가정에서 NAS(네트워크 스토리지) 장치를 운영할 때 포트 포워딩을 사용하여 외부에서 NAS에 접속할 수 있습니다.

ICMP (Internet Control Message Protocol)

  • ICMPIP의 신뢰할 수 없는 통신을 보완하기 위한 프로토콜로, 네트워크에서 발생하는 오류를 보고하거나 네트워크 상태를 진단하는 데 사용됩니다. Ping과 같은 명령어는 ICMP 메시지를 사용해 네트워크 연결 상태를 확인하며, 목적지 호스트가 응답하는지 여부를 진단할 수 있습니다.

정리

  1. 전송 계층네트워크 계층응용 계층을 연결하여 신뢰할 수 있는 통신을 가능하게 합니다. TCPUDP를 통해 각각 신뢰성 있는 통신과 성능이 중요한 통신을 지원합니다.
  2. 포트는 네트워크 통신에서 특정 애플리케이션을 식별하는 데 사용되며, 포트 번호를 통해 패킷을 구분합니다.
  3. NAT는 사설 IP 주소를 공인 IP 주소로 변환하는 역할을 하며, NAPT는 포트를 통해 여러 장치가 하나의 공인 IP 주소를 공유하도록 돕습니다.
  4. ICMP는 네트워크의 오류를 진단하고 피드백을 제공하는 중요한 프로토콜입니다.
반응형

댓글