-
[SW 정글 135일차] IP(Internet Protocol)기타/SW 사관학교 정글 2021. 12. 16. 02:43
오늘은 IP에 대해서 정리해보려고 한다.
이제 내가 그 동안 배운 것들을 다시 한 번 정리해야하기도 하고 tiny web server를 만드는 7주차에서 제대로 알아보지 못했던 IP에 대해서 한 번 알아보는 것도 좋을 것 같아 오늘 시간을 잡아봤다.
IP(Internet Protocol)로 인터넷에서 다른 컴퓨터와 통신할 때 사용하는 프로토콜로 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 주소이다.
IP주소는 IPv4, IPv6 2가지 종류가 있으며 일반적으로 IP주소라 하면 IPv4주소를 말한다.
IPv4는 32비트 주소 체계를 이루고 있고 IPv6는 128비트 주소 체계를 이루고 있다.
v4, v6는 버전을 의미하여 붙이는 것같은데 왜 v5없이 v6라고 할까?
알아본 결과, 비디오/오디오 스트리밍 데이터를 원활히 전송하기 위해 Streaming Protocol(ST)이 개발되었다.
Streaming protocol은 IP패킷에 version 번호를 표시할 때 5번을 사용함에 따라 IPv5로도 불렸다고 한다.
1990년대 초 IBM, SUN, Apple 등의 기업에서 개선을 추진하여 ‘ST-II’ 를 개발하였으나 ST-II는 기존 IPv4의 패킷구조를 그대로 사용하여 IP주소 부족문제를 해결할 수 없었고, ST-II 이외에도 다양한 비디오/오디오 스트리밍 관련 기술이 개발되면서(리얼타임 리소스를 미리 적재하는 방식인 RSVR이 그 중 하나인 듯) 시장에서 자연스럽게 사장되게 됐다고 한다.
결국에는 IPv4의 주소 표현 한계를 극복하기 위해 128비트 주소 체계를 사용하는 IPv6가 필요했고 그 중간 단계라고 하기에는 모호하지만 IPv5는 32비트 주소 체계를 이용하는 것 뿐만 아니라 스트리밍 프로토콜인 ST와 관련되어 탄생하게 되었는데 그 프로토콜마저 하양세이니까 자연스레 쓰이지 않는 듯 하다.
그러면 IPv1, IPv2, IPv3는 어디에 있을까?
이거는 IP라는 프로토콜이 탄생하게 된 배경을 이해해야했다.
처음에는 IP라는계층이 존재하지 않았고 지금의 4계층인 TCP만 존재하였다.
TCP는 어떻게 데이터를 패키징하는지와 어떻게 데이터를 같은 목적지에 보내야하지에 대한 문제를 해결해야했다.
즉, 네트워크 상에서 주소를 관리하는 방법은 TCP가 고민해야할 큰 문제는 아니였다는 것이다.
그래서 TCP는 점차 발전하면서 version 1, version 2가 나오게 됐고 version 2가 고안되면서 프로토콜의 방향성에 대해 문제가 제기됐다.
TCP가 호스트 수준의 엔드 투 엔드 프로토콜 역할과 인터넷 패키징 및 라우팅 프로토콜 역할, 2가지의 역할을 한다는 것이다.
즉, 하나의 게층에서 두 가지 역할을 한다는 것은 계층화가 제대로 되지 않았다는 것이였고 이를 계기로 IP가 나오게 되었고 분리된 TCP와 IP는 둘 다 버전 3이 되었고 안정성이 추가되면서 비로소 유명한 IPv4가 나오게 된 것이다.
IPv4와 IPv6에 대해 간단히 설명하면 아래와 같다.
IPv4는 IP version 4의 약자로 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다.
주소는 32비트 방식으로 8비트씩 4자리로 되어 있으며 각 자리는 온점(.)으로 구분한다.
1비트는 0과 1 2가지를 표현할 수 있고 32비트이므로 약 40억개의 주소를 가질 수 있다.
전 세계적으로 인터넷 사용자 수가 급증하면서 IPv4로 표현할 수 있는 주소가 고갈되기 시작했고 이를 해결하기 위해 IPv6가 나오게 되었다.
IPv6는 IPv6의 약자로 128비트 방식으로 16비트씩 8자리로 각 자리를 콜론으로 구분한다.
네트워크 속도, 보안적인 부분 등 IPv4에 비해 장점이 존재하지만 기존의 주소체계를 변경하는데 비용이 많이 들기 때문에 상용화는 이루어지지 않고 있다.
그러면 내 생각에는 전 세계의 인터넷 장비를 약 40억개의 주소로 표현하기에는 주소가 턱없이 부족할 상황인데 어떻게 아직도 IPv4를 잘 사용하고 있을까?
이 부분은 서브네팅과 수퍼네팅이라는 기술을 통해 완화하고 있다.
서브네팅은 네트워크를 다시 여러 개의 작은 네트워크로 나누는 기법이고 슈퍼네팅은 여러 개의 네트워크를 하나의 네트워크로 합치는 기법이다.
서브네팅과 수퍼네팅은 더 알아볼 시간을 따로 가져봐야겠다.
<참고 자료>
https://www.alertlogic.com/blog/where-is-ipv1-2-3-and-5/
https://study-recording.tistory.com/7
https://www.youtube.com/watch?v=pRWD7oTeuFw&t=286s
'기타 > SW 사관학교 정글' 카테고리의 다른 글
[2022년 1월 2주차 회고] 노력의 결실 (SW 사관학교 정글 취업 성공기) (12) 2022.01.14 [SW 정글 134일차] 알고리즘 문제 적응기 (0) 2021.12.15 [SW 정글 133일차] 자기소개서 준비 및 복습 (0) 2021.12.14 [SW 정글 132일차] 이력서 준비 (0) 2021.12.13 [SW 정글 131일차] 나만의 무기 39일차 (나만의 무기 회고) (0) 2021.12.12