보안개구리

IP에 관하여 본문

IT/네트워크

IP에 관하여

보안개구리 2024. 6. 14. 10:58

 저번에 MAC Address를 배우면서 2 계층 주소는 MAC Address고 3 계층 주소는 IP라고 하면서 휴대폰 번호와 비교했었습니다.
 이번에는 IP에 대하여 보다 자세히 알아보도록 하겠습니다.

 IP는 Internet Protocol에 약자로 인터넷을 사용하는 우리 모두에게 주어진 고유의 주소를 말합니다.
 MAC 주소와 동일하게 도스창에 들어가서(window + r 누른 후 cmd 입력) ipconfig 명령어를 실행하면 자신의 IP를 확인할 수 있습니다.
 이 때 IP가 단순히 IP라고 나오는 것이 아니라 IPv4와 IPv6로 나눠져 있는데 일단 간단하게 말하면 IPv6는 IPv4의 문제를 해결하기 위해 나온 업그레이드 버전입니다.
 IPv4의 경우는 32bit로 구성되어있는데 사실 많다면 많은 숫자이기는 하나 IT가 발달되어 점점 많은 사람들이 IT기기를 이용하는 시대이기에 IP의 숫자는 점점 고갈되어가고 있습니다.
 따라서 IP의 문제를 해결하고자 업그레이드해서 나온 IP가 바로 IPv6입니다.

 8bit를 1옥텟이라고 하는데 IP는 32bit이니 4 옥텟이 됩니다. 그래서 우리가 ip를 쓸 때 123.123.123.123 이런 식으로 8개의 bit씩 끊어서 읽게 되는데 그냥 8개로 쓰자니 가독성이 떨어지므로 위와 같이 10진수로 나타내어 표현합니다.
 한 옥텟은 8bit라 했으니 8bit를 2진법으로 나타내면 0~255까지의 숫자가 나오게 되는데 그러므로 IP의 경우 10진법으로 나타낸다면 0.0.0.0 ~ 255.255.255.255까지 표현할 수 있습니다.
 하지만 이 IP를 전부 사용할 수 있는것은 아닌데 그 이유는 IP를 클래스별로 나누면서 설명해드리겠습니다.

 앞으로 IP를 설명함에 앞서 2진법을 모르는 사람의 경우 먼저 2진법을 숙지해주셔야 이해가 편한다는 것을 알려드립니다.

 IP의 경우 클래스별로 나눌 수 있는데 A Class부터 E Class까지 구분됩니다.
 먼저 A Class에 대하여 알아보겠습니다.
 일반적으로 IP는 xxxx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx 이런 식으로 구성되어 있는데 이 중 가장 처음 숫자가 0인 경우 A Class입니다. 즉 0xxx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx 이런 식으로 구성되어 있는 경우는 A Class라는 말입니다.
 가장 처음 숫자가 0으로 고정하고 그 뒤는 어떤 숫자가 와도 상관없는데 첫 숫자가 0일경우 IP의 범위는 0.0.0.0 ~ 127.255.255.255입니다. 하지만 IP의 경우 보통 네트워크 주소와 브로드캐스트 주소는 사용하지 않는데 네트워크 주소란 가장 첫 주소를 브로드캐스트 주소란 가장 끝 주소를 말합니다.


 0~127까지의 범위중 가장 처음인 0과 가장 끝인 127을 제외하여 사실상 1~126까지를 사용합니다.
 0.0.0.0 경우는 모든 IP를 의미하는 주소로 예약되어 사용되지 않고, 0으로 시작하는 A Class 주소 전체가 사용되지 않습니다. 
 10.x.x.x 주소의 경우 모든 주소가 사설 IP사용하도록 예약되어 있어 제외되고 127.0.0.1 주소는 Loac Loopback Address로 예약되어 있어 제외됩니다.
 
 모든 IP들은 Network 부분과 Host부분으로 나뉘어지는데 예전에 브로드캐스트 얘기를 하면서 브로드캐스트는 자신의 네트워크에 있는 모든 장비에게 프레임을 뿌린다라고 했었습니다. 이때 같은 네트워크라는 기준은 IP의 Network부분이 같다는 말입니다.
 만약 네트워크가 다르다고 하면 Router라는 장비를 사용해서 통신을 해야 하는데 Router는 우리가 배웠던 OSI 7 Layer에서 3계층 즉 Network Layer에서 배운 경로 선정을 해주는 장비를 말합니다. 
 Router에 대해서는 나중에 자세히 배우도록 하고 여기서는 다른 네트워크끼리 통신은 Router가 필요하다 정도까지만 이해해주시면 됩니다.
 Host부분의 경우는 Net부분에 대한 PC 혹은 장비를 말한다고 생각하면 됩니다. 즉 네트워크부분이 아닌 모든 부분들이 host 부분인데 그 host 부분만큼 ip를 부여할 수 있다는 뜻입니다.

 A Class의 경우 첫 옥텟이 Net 부분인데 그렇게 되면 남은 부분이 Host 부분이 됩니다.
 이 말은 앞에 8bit Net 부분, 뒤에 24bit Host 부분이라는 말인데 24bit가 host 부분이라는 것은 2^24(2의 24승) 개의 IP를 부여할 수 있다는 말입니다. 만약 여기서 가장 앞 주소와 뒷주소를 제거한다고 한다면 2^24-2개가 됩니다.
 즉 127.10.2.0과 127.20.30.0은 A Class에 속해있으며 A Class의 경우는 앞의 8자리가 Net부분이기 때문에 두개의 IP 모두 127이라는 숫자가 네트워크 부분이라는 것을 알 수 있습니다.
 2 개의 IP는 Net부분이 동일하기 때문에 같은 네트워크다라고 합니다.
 정리하면 A Class의 경우는
 0xxx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
 -----------  ---------------------------------- 
 network                    host
 
 이런식으로 구성되어 있는 것입니다.

 이제 B Class를 보겠습니다.
 우리가 A Class에서 가장 첫 숫자를 0으로 사용했기 때문에 B Class의 경우는 당연히 첫 숫자로 1이 오고 그다음 숫자가 0이와야 합니다. 즉 10xx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx 이런 구성이 됩니다.
 이진법 상으로 첫숫자가 1인 경우 십진법으로 계산하면 128이 되는데 따라서 128이라는 숫자부터 시작한다는 말이 됩니다.(IP의 경우 첫 시작은 2^1이 아닌 2^0입니다).

 그리고 2개의 옥텟이 net부분이 남은 2개의 옥텟이 host부분이 되며 네트워크의 범위는 128 ~ 191이 됩니다.


 이번에는 173.10.11.0과 173.11.12.0을 예로 들겠습니다.
 두 IP 모두 가장 앞숫자가 173인 걸로 보아 B Class라는 것을 알 수 있습니다. 만약 A Class였다면 두 IP는 동일한 네트워크다라고 할 수 있었겠지만 B Class의 경우 언급한 대로 두 옥텟이 네트워크 부분입니다.
 즉 173은 일치하나 두번째 옥텟이 10과 11로 일치하지 않기 때문에 다른 네트워크입니다.
 만약 두 IP가 같은 네트워크가 되고 싶다면 11 혹은 10으로 통일시켜줘야 됩니다.
 2개의 옥텟 즉 16bit가 net부분 16bit가 host부분이라고 했으니 할당할 수 있는 IP(호스트)의 수는 2^16-2개가 됩니다.
 10xx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
 ----------------------  -----------------------
       network                    host
 이런식으로 구성되어 있는 것입니다.

 다음은 C Class입니다.
 앞서 B Class가 10이라는 IP를 사용했으니 C Class는 110이라는 IP를 사용하게 되고 따라서 네트워크의 범위는 192~223까지가 됩니다.
 이쯤되면 다들 눈치채셨겠지만 A Class가 8bit의 net부분을 B Class가 16bit의 net부분을 가졌다는 것을 보아 당연히 C Class는 24bit의 net부분을 가질 것이고 8bit의 host부분을 갖기 때문에 2^8-2개의 host를 갖게 됩니다.
110x xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
 --------------------------------  ---------
          network                      host
 이런식으로 구성되어 있는 것입니다.
 
 D Class는 224~239의 범위를, E Class는 240 ~ 255의 범위를 갖습니다.
 D Class의 경우는 멀티캐스트 전송을 위해 하나의 주소가 특정 프로토콜이나 서비스에 예약되어있고 E Class의 경우 실험용으로 예약되어 있습니다.
 따라서 우리가 자주 보고 사용하게 될 IP는 A~C까지입니다.

 우리는 IP의 가장 앞에 있는 숫자(127, 192 등등)를 보고 이 IP가 어디 클래스인지 알 수 있어야 하는데 사실 127이라고 반드시 A Class이고 192라고 반드시 C Class인 것은 아닙니다. 
 사실 IP만 보고 무슨 Class인지 알려면 디폴트 네트워크라는 말이 나와야 하는데 디폴트 네트워크라는 것은 IP만 봣을때 별다른 설정을 하지 않았다는 것입니다.
 즉 우리가 IP만 보고 알 수 있는 것은 디폴트 네트워크들입니다.
 네트워크의 범위 같은 경우는 외울수 있으면 외우면 좋지만 정 못 외우겠다고 하시는 분들은 이렇게 하시면 좋습니다.
 한 옥텟은 8bit 8bit는 255개까지의 숫자를 나타낼 수 있다고 했고 255를 2로 나누면 127이 됩니다. 즉 A Class의 범위는 127까지 인 것입니다.
 127을 다시 2로 나누면 63이 되는데 A Class가 127까지인것을 알았으니 당연히 B Class는 128부터 시작일 꺼고 128+63을 하면 191이 나옵니다. 즉 128~191까지가 B Class의 범위입니다.
 C역시 마찬가지로 63을 2로 나눈 후 더하면 되는데 C Class의 시작은 192이고 여기에 63을 2로 나눈 숫자를 더하면 223이 됩니다. 당연히 C의 범위는 192 ~ 223까지 입니다.
 이런식으로 네트워크 범위를 외우기 힘들다면 255라는 숫자에서 2로 나눈 숫자들을 더해주면 네트워크 범위를 구할 수 있습니다.

 여기까지 이해하셨다면 이제 IP를 보고도 무슨 클래스의 IP인지 유추할 수 있습니다. 
 IP를 보고 클래스를 알아내는게 중요한 이유는 클래스별로 네트워크 부분이 다르기 때문에 IP를 비교할 때 같은 네트워크인지 아닌지 판단하기 위해서입니다.
 즉 192.168.25.1 과 192.169.25.1 두 IP를 보고 우리는 저 두 IP는 C Class이며, C Class이기 때문에 앞에 24bit가 Net부분인데 두 번째 옥텟이 168과 169로 서로 다르기 때문에 다른 네트워크구나 까지 생각할 수 있어야 합니다.
 네트워크별로 구분을 해야하는 이유는 위에서 말한 것처럼 같은 네트워크에 안에서는 라우터의 도움 없이도 통신이 가능하지만 다른 네트워크끼리는 라우터가 필요하기 때문에 네트워크 구성을 어떻게 할지 판단하기 위해서입니다.

 다음 시간에는 IP에대하여 좀 더 알아보고 Subnet Mask에 대하여 알아보도록 하겠습니다
 
*정리*
IP는 3계층 주소로 기존에는 IPv4를 사용하였으나 주소 부족 문제로 인하여 IPv6가 새로 나왔다.
IPv4는 32bit로 구성되어있으며 IP주소에 따라 A Class부터 E Class까지 나뉘는데 일반적으로는 A~C Class까지 사용된다
A Class는 8bit의 Net부분과 24bit의 Host 부분으로 이루어져 있으며 1~126까지의 네트워크 주소를 갖는다
B Class는 16bit의 Net부분과 16bit의 Host부분으로 이루어져 있으며 128~191까지의 네트워크 주소를 갖는다
C Class는 24bit의 Net부분과 8bit의 Host부분으로 이루어져 있으며 192~223까지의 네트워크 주소를 갖는다
같은 네트워크끼리의 통신은 Router라는 장비 없이 가능하지만 다른 네트워크끼리의 통신은 Router가 필요하다

'IT > 네트워크' 카테고리의 다른 글

서브넷팅(Subnetting)  (0) 2024.06.14
서브넷 마스크(Subnet Mask)  (0) 2024.06.14
TCP/IP  (0) 2024.06.10
OSI 7 Layer  (0) 2024.06.10
MAC Address  (0) 2024.06.10