Link Search Menu Expand Document

2023-05-27

[network] IPv4? IPv3은 어디로 갔을까?

이 글은 'IPv4가 있다면 IPv3도 있을까? 그리고 IPv4에서 IPv6로 넘어간건 왜일까?' 에 대한 궁금증에서 시작된 내용이야.


- 내용
개발자라면 ip는 잘 알거야. 23.20.150.20 이런 식으로 4바이트(32비트)로 이루어 진 ip말이야.
저런 형식의 ip는 IPv4에 규정되어 있는데 32비트로는 42억개의 주소만 사용할 수 있는 한계가 있기 때문에 IPv6 규약을 새로 만들었고, 이 녀석은 128비트라서 사실상 거의 무한한 주소를 사용할 수 있어 (약 340조*1조^2)

이제 아래에서 말하는 IP는 저 ip를 뜻하는건 아니고 Internet Protocol의 약자로써 OSI 7계층 중의 3단계인 네트워크 계층을 말해.

태초에 OSI가 협의되기 전에는 IP없이 TCP만 구성해서 사용했어. 아니, 없다기 보단 TCP라는 기능 안에 IP의 기능까지 포함되어 사용하고 있었지.
그렇게 TCP버전을 v3까지 만들고 나니 TCP에서 IP계층을 분리하는게 더 좋아보였단 말이지?

왜냐하면 TCP는 높은 신뢰성을 바탕으로 구성되다보니 패킷 전송 및 검증에 들어가는 비용이 지나치게 커졌는데 모든 네트워크에서 이런 기능이 필요하진 않았거든. 

그래서 기존 TCP에서 네트워크 계층을 분리한 IP와 전송 계층으로 TCP를 분리한거야. 그리고 전송 신뢰성이 필요없는 프로토콜인 User Datagram Protocol, 즉 UDP를 만들면서 3계층엔 IP, 4계층엔 TCP, UDP가 최종적으로 구성된거지.

생각해보면 전송 계층인 UDP도 네트워크 계층으로 IP를 사용하고 있으니 UDP/IP라고 써야하는게 맞는데 그렇게 쓰는 사람이 아무도 없는걸 보면 TCP/IP는 하나의 고유명사처럼 불리는 느낌이긴 해.

어쨌든 이렇게 분리하고 규약을 만들다보니 IPv1이라고 쓰는게 맞는데 TCP에서 버전3까지 나온 상황에서 분리된거라 TCP버전을 따라가는게 자연스러워서 IPv4라는 이름으로 나오게 되었어. IP의 첫번째 버전이 4부터 시작된 이유야.

그리고 나서 1998년에 IP의 새로운 규약인 IPv6가 나왔는데 여기서 버전5를 건너뛴 이유는 IPv4 이후에 실험적으로 인터넷 스트림 프로토콜(ST) 버전2가 발표되었는데 이 때에 일반 IP 패킷과 구분하기 위해 IP에 버전5가 할당되면서 그 다음 버전이 6으로 시작된거야. 실제로 IPv5는 거의 사용하지 않는 프로토콜이야.


- 결론
1) 최초에는 TCP 안에 IP도 같이 구현되어 있었는데 기능이 분리되면서 TCP 버전을 그대로 인계받아 IP의 첫 버전이 IPv4가 되었다.
2) IPv5는 실험적으로 만든 인터넷 스트림 프로토콜을 구성하면서 만든 규약인데 지금은 거의 사용하지 않는다.
3) 이 때문에 IPv4 다음 버전이 IPv6로 되었다.

이전글: https://frogred8.github.io/
#frogred8 #network #ipv4