본문 바로가기

CS

[CS] IP (Internet Protocol)

 

 


 

 

개요

우리가 흔히 알고 있는 IP는 IP 주소이다. IP 주소는 IP(Internet Protocol)에 필요한 고유 주소를 의미합니다. 그렇다면, IP(Internet Protocol)무엇인지 알아봅시다.

 

 


 

 

 

IP (Internet Protocol)

컴퓨터나 스마트폰 같은 네트워크 장치들이 인터넷을 통해 서로 통신할 수 있도록 하는 통신 규약입니다. 

 

 


 

 

IP의 역할

  • 데이터를 올바른 장치로 전달하게 해줍니다. (데이터 전송 시 출발지와 목적지 IP 사용)
  • 네트워크 내 통신 장치를 식별합니다. (IP 주소를 이용)

 

 


 

 

IP 주소의 종류

다음과 같은 IP 주소를 통해 네트워크에서 기기를 식별할 수 있다.

 

1. IPv4 (Internet Protocol version 4)

  • 예: 192.168.0.1
  • 32비트 주소 체계로 약 43억 개의 주소를 제공
  • 가장 널리 사용됨.

 

2. IPv6 (Internet Protocol version 6)

  • 예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • 128비트 주소 체계로 사실상 무한에 가까운 주소 제공
  • IPv4 주소 부족 문제를 해결하기 위해 도입됨

 

 


 

 

IP의 데이터 교환 방식 (Packet)

  • 웹사이트에 접속하거나 메시지를 보낼 때, 실제로는 그 데이터가 작은 조각들(패킷, Packet) 단위로 나뉘어 전송됩니다.
  • 각각의 패킷은 전송 위치의 IP 주소송신 위치의 IP 주소 정보를 포함합니다.
  • 데이터를 주기만 하는 것이 아닌, 받고 응답한다.

 

웹 요청(HTTP 요청)의 전체 동작 과정

2, 3번이 IP에 해당한다.

 

1. DNS 조회

  • 도메인 이름(example.com)을 서버 IP 주소 (예: 93.184.216.34)로 변환

2. 패킷 생성

  • 웹 요청 데이터를 IP 패킷으로 감쌈
  • IP 헤더에는 출발지 IP, 목적지 IP 등이 포함됨

3. 라우터를 통한 전달

  • 각 패킷은 인터넷 라우터를 통해 목적지까지 전달됨
  • 라우터는 IP 주소를 참고하여 다음 목적지를 결정함

4. 목적지에 도착

  • 서버는 패킷을 받아서 조립하고 요청에 응답함 (예: HTML 페이지 전달)

5. 응답 전송

  • 서버가 응답을 다시 IP 패킷으로 만들어 클라이언트에게 보냄

 

 


 

 

IP 방식의 문제점

IP는 "주소만 알려주는 역할"만 하기 때문에, 실제 데이터를 안정적으로 처리하기엔 혼자서 불완전합니다. 쉽게 말해서, IP는 편지 봉투에 적힌 주소에 해당합니다. 하지만 주소만 있다고 해서 편지가 확실히 전달되거나, 순서대로 오거나, 손상 없이 도착하는건 보장되지 않습니다.

 

부족한 이유가 무엇일까

한계 설명
애플리케이션 구분이 안됨 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분할 수 없음
연결 상태를 유지하지 않음 (비연결성) 수신 대상의 현재 상태에 상관없이 데이터를 전송함 (ex. 받는 대상이 오프라인임)
순서 보장 안됨 (비신뢰성) IP는 "데이터를 보냈다"는 사실도, "잘 받았는지"도 확인하지 않음
여러 개의 패킷이 있다면 중간에 순서가 뒤바뀔 수 있음
손실/에러 복구 없음 패킷이 손상되거나 유실되어도 다시 보내지지 않음
데이터 크기 제한 IP 패킷은 크기에 제한이 있어서 큰 데이터는 여러 조각으로 쪼개야 함
(조립은 다른 프로토콜이 담당)

 

 

 


 

 

 

다음으로

이러한 IP 방식의 문제점을 보완하기 위해 TCP 또는 UDP와 함께 사용된다.

 

 

 

'CS' 카테고리의 다른 글

[CS] 3-Way Handshake  (0) 2025.05.05
[CS] TCP와 UDP  (0) 2025.05.04
프론트엔드(Front-End)와 백엔드(Back-End)는 뭐가 다를까?  (0) 2025.04.19
[CS] 스레드(Thread), 멀티 스레드(Multi-Thread)  (0) 2025.04.18
[CS] HTTP와 HTTPS란?  (0) 2025.04.04