블로그 이전했습니다. https://jeongzero.oopy.io/
IPv4 주소체계
본문 바로가기
컴퓨터 관련 과목/Network

IPv4 주소체계

728x90

IP주소는 32비트 길이이다(4바이트,IPv4). 따라서 대략 2^32 개(40억개 정도) 주소가 사용가능하다. 이 주소는 일반적으로 주소의 각 바이트를 십진수로 표현하고 주소의 다른 바이트와 점으로 구분하는 십진 표기법을 사용한다. 예를 들어 IP주소가 193.32.216.9 라고 하자. 193은 주소의 첫 번째 8비트와 같고 32는 주소의 두 번째 8개 비트와 같다. 따라서 주소 103.32.216.9를 이진수로 나타내면 다음과 같다.


11000001 00100000 11011000 00001001


전 세계 인터넷에서 모든 호스트와 라우터의 각 인터페이스는 고유한 IP 주소를 갖는다. 이러한 주소는 마음대로 선택할 수 없고 인터페이스의 IP 주소 일부는 연결된 서브넷이 결정한다. 아래 그림을 보면 IP 주소와 인터페이스의 예를 보여준다. 3개의 인터페이스를 갖는 하나의 라우터는 7개의 호스트를 연결한다. IP 용어로 세 호스트들의 인터페이스들과 하나의 라우터 인터페이스로 연결된 네트워크는 서브넷을 구성한다고 말한다.


위 그림을 보면 7개 호스트 전부 223으로 시작하기 때문에 클래스C의 IP주소인 것을 알수 있다. 따라서 앞에 3바이트까지가 네트워크 주소이고 마지막 한바이트가 호스트 주소이다. 왼쪽은 223.1.1의 네트워크 주소를 가지는 하나의 서브넷으로 구성되어 있고, 오른쪽은 223.1.2의 네트워크 주소를 가지는 서브넷, 마지막으로 아래쪽은 223.1.3의 네트워크 주소를 가지는 서브넷으로 구성되어 있다.


클래스 주소체계

위에서 네트워크 주소 호스트 주소를 언급했는데 이거에 대해서 간략히 설명하겠다. IP주소는 네트워크 주소 부분과 호스트 주소 부분으로 구성되어 있는데 네트워크 주소의 목적은 내가 보내고자 하는 패킷이 존재하는 네트워크가 어디에 있는지를 확인하기 위한 부분이고, 네트워크 주소를 통해 해당 네트워크까지 갔다면 그 안에서 실직적으로 목적지의 호스트가 누구냐! 는 호스트 주소를 보고 판단한다. 이러한 네트워크 주소와 호스트 주소는 클래스 주소 체계마다 범위가 다르며 다음과 같이 구성되어 있다.



A 클래스는 4바이트 중 첫 바이트를 네트워크 주소 사용하고 나머지 3바이트를 호스트 주소로 사용한다.

B 클래스는 앞의 2바이트를 네트워크 주소로, 나머지 2바이트를 호스트 주소로 사용한다.

C 클래스는 앞의 3바이트를 네트워크 주소로, 나머지 1바이트를 호스트 주소로 사용한다.

(D는 멀티캐스트, E는 나중에 사용하기 위해 예약해놓 머시기라나...)


이러한 클래스 주소체계는 32 비트 인터넷 주소 형식의 한 부분을 네트워크 주소에 할당하며, 남은 부분은 그 주소에 의해 지정된 네트워크 내에 있는 특정 호스트에 할당한다. 가장 광범위하게 사용되는 클래스 중 하나가 클래스 B인데, 이는 최대 65,533대의 호스트를 지정할 수 있는 주소 공간이 할당된다. 그러나, 만일 254개 이상 65,533개 이하의 호스트 주소가 필요한 회사인 경우에는, 본질적으로 할당된 주소 블록의 대부분을 낭비하게 된다. 바로 이러한 이유 때문에, CIDR라는 인터넷 주소 할당 방식이 나왔다. 


CIDR

인터넷 주소할당 방식에 CIDR(일명 사이다!!)라는 것이 있다. CIDR은 서브넷 주소체계 표기를 일반화하고 있는 서브넷 주소체계로서, 32비트 IP 주소는 두 부분으로 나누고, 이것은 다시  a.b.c.d/x 요로한 형식으로 구성되어 있으며, 여기서 x 는 주소 첫 부분의 비트 수이다.a.b.c.d/x 형식 주소에서 최상위 비트를 의미하는 x는 IP 주소의 네트워크 부분을 구성하고 이를 해당 주소의 프리픽스 또는 네트워크 프리픽스라고 부른다. 한 기관은 통상 연속적인 주소의 블록을 할당 받는다. 여기서 /x 이부분을 서브넷 마스크라 부르는데 이해하기 쉽게 예를 들어 설명하겠다.


IP 주소 클래스 범위에서 서브넷을 나누지 않고 사용하는 경우 디폴트 서브넷 마스크가 적용된다.

클래스 A 는 네트워크 주소 부분이 0~126 이므롤 디폴트 서브넷 마스크는 /8 이고 이는 앞에 8비트가 모두 1로 구성되는 서브넷 마스크를 가진다.

클래스 B는 네트워크 주소 부분이 128~191 이므로 디폴트 서브넷 마스크는 /16 이고 이는 앞에 16비트가 모두 1로 구성되는 서브넷 마스크를 가진다.

클래스 C는 네트워크 주소 부분이 192~223 이므로 디폴트 서브네 ㅅ마스크는 /24 이고 이는 앞에 24비트가 모두 1로 구성되는 서브넷 마스크를 가진다.


여기서 이제 서브넷팅이라는 개념이 들어오는데 만약 서브넷 마스크를 따로 설정하지 않으면 위 처럼 디폴트 서브넷 마스크가 들어간다.한 기관이 회사를 설립하고 각 IP주소를 돈주고 사왔다고 가정해보자. 클래스 B IP주소를 할당받게되면 네트워크 주소부분이 3바이트인 ip주소 블럭을얻게 된다. 이제 이를 각 부서별로 노나 쓸수 있도록 배분을 해야한다. 사용가능한 호스트 ip주소는 대략 65000개 인데 이를 한번에 관리하기 보다는여러 구역으로 나누어 각 구역마다 관리자를 배치하여 관리하면 더 효율적이지 않겠는가? 


더 쉽게 설명하면 만약 65000명이 체육관으로 들어갔다고 해보자. 여기서 관리자가 한명이면 이 많은 인원을 다 관리를 못한다. 따라서 65000명을 적당히 그룹지어서 각 그룹마다 팀장을 지정하여 관리자는 각 팀장에게 전달사항을 전달하고 다시 팀장은 각 조원들을 관리하는 식으로 하면 더욱 효율적인 관리가 가능 할 것이다. 따라서 서브넷 마스크를 클래스 B의 디폴트 서브넷 마스크 /16가 아닌 /18로 하게 되다면 다음과 같이 될 것이다.


138.119.40.186/16 이런 클래스 B주소가 있다고 가정하면

서브넷 마스크 : 11111111 11111111 11111111 11000000 가 이렇게 되므로 호스트 주소는 총 4개의 그룹으로 나뉜다. 뭔 말이냐면

마지막 8비트에서 앞에 2비트까지 네트워크 주소이므로 그룹화 되는 경우의 수는 


네트워크 주소 부분             호스트 주소

00            000000~111111   : 0~63

   01            000000~111111   : 64~127

    10             000000~111111   : 128~191

    11             000000~111111   : 192~255


이렇게 IP주소의 낭비를 막기위해서 원본 네트워크를 여러개의 네트워크로 분리하는 것을 서브넷팅이라고 한다.


 



 



728x90

'컴퓨터 관련 과목 > Network' 카테고리의 다른 글

라우팅 알고리즘  (0) 2019.01.07
네트워크 제어평면과 데이터 평면  (0) 2019.01.07
IPv4 데이터그램 단편화  (20) 2019.01.06
라우터 내부에는 무엇이 있을까?  (0) 2019.01.06
TCP 혼잡제어  (0) 2019.01.05