IP 에 대해 알아보자!

2023. 6. 17. 03:16ETC/Network

웹 개발을 하다 보면 IP 라는 단어가 많이 등장한다. IP라 하면 난 막연히 IP 주소를 생각했던 것 같다. 이번 기회에 IP에 대해 공부한 내용을 정리해보고자 한다.

 

What is IP

IP 란 Internet Protocol 의 약자로 인터넷상에서 어떤 정보를 수신 및 송신하기 위한 통신 규약이다.

 

IP 의 역할

1. 지정된 IP 주소(IP Address) 에 데이터 전달

2. 패킷(Packet) 이라는 통신 단위로 데이터 전달

 

IP 의 한계

클라이언트는 출발지(클라이언트 IP) 와 도착지(서버 IP), 전송할 데이터를 담은 패킷을 인터넷을 통해 서버로 보내려고 한다.

패킷은 출발지에서 도착지로 바로 가지 않고 인터넷의 수많은 노드(서버)들을 거쳐서 도착하게 된다.

 

이러한 방식 때문에 몇 가지 한계점이 생긴다.

 

  1. 비연결성
    • 패킷을 받을 대상이 없거나 받는 대상이 서비스 불능 상태여도 패킷을 전송한다.
  2. 비신뢰성
    • 여러 노드를 거치기 때문에 패킷의 소실될 수 있다.
    • 같은 목적지로 여러 패킷을 보냈을 때 꼭 같은 노드를 거치지 않거나 패킷의 크기가 다르기 때문에 패킷의 순서를 보장할 수 없다.
  3. 프로그램 구분
    • 같은 IP 주소를 사용하는 서버에서 통신하는 어플리케이션이 둘 이상인 경우도 있다.

 

IPv4 와 IPv6

AWS에서 보안그룹 설정을 하다 보면 IP 주소를 IPv4 혹은 IPv6로 표현하는 것을 보곤 했다.

IPv4는 32비트 주소체계를 사용하고 있다. 하지만 전 세계적으로 IP 개수가 부족해짐에 따라 이에 대한 방안으로 IPv6 주소 체계가 등장한 것이다.

IPv6는 128비트 주소체계를 사용한다. 이에 더 많은 IP 주소 표현이 가능하다.

 

이런 주소 통신규약을 바꾼다면 기존 IPv4를 IPv6로 변환하는 과정이 필요할 것이다. 이에 IPv6 라우터가 IPv4 라우터를 만나면 IPv4 Header를 추가해 주고 IPv4 가 IPv6 라우터를 만나면 header를 떼어주는 식의 방법을 사용하고 있다. 이 방법을 Tunneling 이라고 한다.