Post

인터넷 네트워크

인터넷 네트워크

인터넷 통신

인터넷 상에서 컴퓨터들 간의 통신은 어떻게 이루어질까요?

가까운 거리에 있는 두 대의 컴퓨터는 케이블로 직접 연결하여 데이터를 주고받을 수 있습니다.

그러나 인터넷은 수많은 노드와 서버, 광케이블, 위성 등을 통해 연결된 복잡한 망입니다.

따라서 메시지를 안전하게 목적지까지 전달하기 위해서는 일정한 규칙과 프로토콜이 필요합니다.

인터넷 통신을 이해하기 위해서는 IP, TCP/UDP, PORT, DNS 등의 개념을 알아야 합니다.

이들은 웹과 HTTP의 기반이 되는 중요한 요소입니다.

예시

  • 한국에서 미국에 있는 친구에게 메시지 전송:
    한국에 있는 컴퓨터에서 미국 친구의 컴퓨터로 “Hello World” 메시지를 보내려면
    인터넷 망을 통해 여러 노드를 거쳐야 합니다.
  • 복잡한 경로: 메시지는 해저 광케이블, 위성 등 다양한 경로를 통해 전달됩니다.

IP (인터넷 프로토콜)

IP(Internet Protocol)는 인터넷 상에서 데이터를 전달하기 위한 규칙을 정의한 프로토콜입니다.

각 컴퓨터는 고유한 IP 주소를 부여받아 통신에 참여합니다.

IP 프로토콜은 데이터 패킷을 목적지까지 전달하기 위한 기본적인 방법을 제공합니다.

핵심 개념

  • IP 주소: 네트워크 상의 각 장치에 부여되는 고유한 주소로, 예를 들어 100.100.100.1과 같이 표현됩니다.
  • IP 패킷: 데이터 전송 단위로, 출발지 IP 주소, 목적지 IP 주소, 전송 데이터로 구성됩니다.
  • 비연결성: IP는 연결을 확인하지 않고 데이터를 전송하므로, 수신 측의 상태를 알 수 없습니다.
  • 비신뢰성: 데이터 패킷이 중간에 유실되거나 순서가 바뀌어도 이를 확인하거나 수정하지 않습니다.

예시

  • 패킷 전달 과정: 메시지를 IP 패킷에 담아 출발지와 목적지 IP 주소를 설정한 후 인터넷 망에 전송합니다.
  • 순서 뒤바뀜 문제: 여러 패킷으로 나누어진 데이터가 서로 다른 경로로 전달되어 순서가 뒤바뀔 수 있습니다.

확인 문제

  • IP 프로토콜의 한계점은 무엇인가요?
  • IP 패킷은 어떤 구성 요소로 이루어져 있나요?

TCP/UDP

TCP (전송 제어 프로토콜)

TCP는 IP 프로토콜의 한계를 보완하여 신뢰성 있는 데이터 전송을 제공하는 프로토콜입니다.

연결 지향적이며, 데이터 전달 보증과 순서 제어를 제공합니다.

핵심 개념

  • 연결 지향성: 데이터 전송 전에 송신자와 수신자가 연결을 설정합니다. (Three-way handshake)
  • 데이터 전달 보증: 데이터가 정확하게 전달되었는지 확인하고, 유실된 경우 재전송합니다.
  • 순서 보장: 전송된 데이터의 순서를 유지하여 수신 측에 전달합니다.

예시

  • Three-way handshake:
    1. 클라이언트가 서버에 연결 요청(SYN)을 보냅니다.
    2. 서버는 요청을 확인하고 응답(SYN-ACK)을 보냅니다.
    3. 클라이언트는 응답을 확인하고 연결 확정(ACK)을 보냅니다.
  • 데이터 전송 보증: 데이터가 도착하지 않으면 재전송하여 신뢰성을 확보합니다.

확인 문제

  • TCP의 주요 특징 세 가지는 무엇인가요?
  • TCP 연결을 설정하는 과정을 무엇이라고 하나요?

UDP (사용자 데이터그램 프로토콜)

UDP는 TCP와 달리 연결 설정이나 데이터 전달 보증, 순서 보장을 제공하지 않는 프로토콜입니다.

그러나 전송 속도가 빠르고 오버헤드가 적습니다.

핵심 개념

  • 비연결성: 연결 설정 없이 데이터를 전송합니다.
  • 신뢰성 없음: 데이터 전달 보증이나 순서 보장을 하지 않습니다.
  • 포트 번호 사용: 응용 프로그램 간의 통신을 위해 포트 번호를 사용합니다.

예시

  • 실시간 서비스: 온라인 게임, 스트리밍 서비스 등에서는 빠른 데이터 전송을 위해 UDP를 사용합니다.
  • 오버헤드 감소: 추가적인 제어 정보가 없기 때문에 네트워크 부하를 줄일 수 있습니다.

확인 문제

  • UDP와 TCP의 차이점은 무엇인가요?
  • 어떤 상황에서 UDP를 사용하는 것이 적합한가요?

PORT (포트)

포트는 하나의 IP 주소 내에서 여러 응용 프로그램을 구분하기 위한 논리적인 번호입니다.

IP 주소가 집 주소라면, 포트는 그 집의 각 방 번호에 해당합니다.

핵심 개념

  • 포트 번호: 0부터 65535까지의 숫자로, 각 응용 프로그램에 할당됩니다.
  • 출발지 포트와 목적지 포트: 통신 시 송신자와 수신자의 포트 번호를 사용하여 데이터를 주고받습니다.
  • 잘 알려진 포트: 0~1023번 포트는 특정 서비스에 예약되어 있으며, 일반적으로 사용하지 않습니다.

예시

  • 웹 서비스: HTTP는 기본적으로 80번 포트를 사용하고, HTTPS는 443번 포트를 사용합니다.
  • 동시 통신: 한 컴퓨터에서 웹 브라우징과 게임을 동시에 할 때, 각각 다른 포트를 사용하여 구분합니다.

확인 문제

  • 포트 번호의 역할은 무엇인가요?
  • 잘 알려진 포트 번호의 범위는 어떻게 되나요?

DNS (도메인 이름 시스템)

DNS는 사람이 이해하기 쉬운 도메인 이름을 IP 주소로 변환해주는 시스템입니다.

이를 통해 사용자는 복잡한 IP 주소를 기억할 필요 없이 도메인 이름으로 접근할 수 있습니다.

핵심 개념

  • 도메인 이름: 예를 들어 www.example.com과 같이 사람이 읽기 쉬운 주소입니다.
  • DNS 서버: 도메인 이름과 IP 주소의 매핑 정보를 저장하고 제공합니다.
  • IP 주소 변경 대응: 서버의 IP 주소가 변경되어도 도메인 이름을 통해 계속 접근할 수 있습니다.

예시

  • 웹 사이트 접근: 사용자가 www.google.com을 입력하면 DNS 서버가 해당 도메인의 IP 주소를 반환합니다.
  • 도메인 등록: 도메인 등록 기관을 통해 원하는 도메인 이름을 구매하고 DNS 설정을 합니다.

확인 문제

  • DNS의 주요 기능은 무엇인가요?
  • 도메인 이름을 사용하는 이유는 무엇인가요?

정리

인터넷 통신에서 IP, TCP/UDP, PORT, DNS는 핵심적인 역할을 합니다.

  • IP: 인터넷 상의 장치를 식별하고 데이터 패킷을 전달합니다.
  • TCP: 신뢰성 있는 데이터 전송을 위해 연결을 설정하고 데이터 전달을 보증합니다.
  • UDP: 빠른 데이터 전송이 필요할 때 사용하며, 연결 설정 없이 데이터를 전송합니다.
  • PORT: 하나의 IP 주소 내에서 여러 응용 프로그램을 구분합니다.
  • DNS: 도메인 이름을 IP 주소로 변환하여 사용자가 쉽게 접근할 수 있도록 합니다.

확인 문제

  • TCP와 UDP는 각각 어떤 상황에서 사용되나요?
  • 포트 번호는 왜 필요하며, 어떻게 사용되나요?
  • DNS를 사용하면 어떤 이점이 있나요?

빈칸 문제

  1. IP 프로토콜은 _____과(와) _____이(가) 때문에 데이터 전달에 한계가 있습니다.
  2. TCP에서는 데이터 전송 전에 _____ 과정을 통해 연결을 설정합니다.
  3. UDP는 _____이(가) 없지만, 전송 속도가 빠르고 _____이(가) 적습니다.
  4. 포트 번호는 컴퓨터 내의 _____을(를) 구분하기 위해 사용됩니다.
  5. DNS는 도메인 이름을 _____로 변환해주는 시스템입니다.

답안

  1. 비연결성, 비신뢰성
  2. Three-way handshake
  3. 연결 설정, 오버헤드
  4. 응용 프로그램(프로세스)
  5. IP 주소

마무리

인터넷 통신의 기본 요소인 IP, TCP/UDP, PORT, DNS에 대해 알아보았습니다.

이러한 개념들은 웹과 HTTP를 이해하는 데 필수적이며,

실제로 네트워크 프로그래밍이나 웹 개발을 할 때 기본이 되는 지식입니다.

This post is licensed under CC BY 4.0 by the author.