인터넷 프로토콜(IP)는 컴퓨터 네트워크 간의 통신을 위한 핵심적인 프로토콜 중 하나이며 TCP/IP 4계층에서 3계층에 해당한다. 지정한 IP 주소에 데이터를 전달하고, 패킷이라는 통신단위로 캡슐화하는 역할을 담당한다.
컴퓨터나 네트워크 장비를 식별하기 위해 사용하는 고유한 숫자이다.
IP 주소는 네트워크에서 패킷을 전송하는 데 사용되며, 각 패킷은 출발지 IP 주소와 목적지 IP 주소를 포함한다. 라우터와 같은 네트워크 장비는 이러한 주소 정보를 사용하여 패킷을 전달하고 라우팅을 수행한다. IP 주소는 인터넷 통신에서 중요한 역할을 하며, 모든 인터넷 연결 장치는 고유한 IP 주소를 가져야 한다.
IP 주소는 IPv4, IPv6 이렇게 두가지 버전이 존재한다.
32비트 길이의 식별자로 0.0.0.0~255.255.255.255까지의 숫자의 조합으로 이루어지며 일반적으로 네 개의 8비트 숫자로 나누어진다.
IPv4를 통해 최대 약 43억개의 서로 다른 주소를 부여할 수 있다. 하지만 전세계 공용으로 사용되며 인터넷 사용자수가 급증하면서 IPv4주소가 고갈될 문제에 처해있다. 이러한 고갈 문제를 해결하기 위해 등장한 주소가 바로 IPv6이다.
IPv4 주소 고갈 문제를 해결하기 위해 도입되었다. IPv6 주소는 128비트로 구성되며, 일반적으로 8개의 16진수 블록으로 표시됩니다. 예를 들어, 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같은 형식이다.
IPv6주소는 3.4*10 38개의 주소를 생성할 수 있다.
인터넷 계층에서 데이터를 전송화기위해 캡슐화 하는 통신단위를 패킷이라고한다.
IP 패킷의 헤더에는 다양한 제어 정보가 포함된다. 이 정보에는 송신자와 수신자의 IP 주소, 패킷의 길이, 프로토콜 유형 등이 포함된다.
이러한 캡슐화 과정은 데이터를 안전하고 효율적으로 전송하기 위해 필요한 구조를 만든다.
라우팅이란 하나 이상의 네트워크상에서 경로를 선택하는 프로세스이다.
패킷이 송신자에서 수신자로 전달될때의 최적의 경로를 선택한다.
이러한 경로 결정을 라우터라는 특수한 하드웨어에 의해서 이루어진다.
라우터는 내부 라우팅 테이블을 사용해서 방법을 결정하는데,
라우팅 테이블에는 다양한 네트워크 및 해당 네트워크로의 경로 정보가 포함된다.
라우터는 패킷을 전달할 때 이러한 라우팅 테이블을 참조하여 최적의 경로를 결정한다.
이러한 IP 프로토콜에도 몇가지 한계가 존재한다.
IP 프로토콜은 데이터를 전송하기 위해 미리 연결 설정 단계를 거치지 않고 전송한다.
이는 데이터 패킷이 도착할지 여부를 보장하지 않는다.
만약 패킷을 받을 대상이 없거나 서비스 불능 상태여도 클라이언트는 서버의 상태를 파악할 방법이 없기 때문에 패킷을 그대로 전송한다.
또한 중간에 패킷이 사라졌는지 변경되었는지 여부 또한 알수가 없다.
이러한 경우 패킷 손실이 발생할수 있는데 이런 경우 패킷을 재전송하거나 다시 요청하는 추가 작업을 필요로 하기 때문에 전체 데이터 전송에 지연을 초래할 수 있다.
P 프로토콜은 기본적으로 안전한 통신을 보장하지 않으므로, 패킷의 도청이나 위조와 같은 보안 위협에 취약할 수 있다.