IP 주소의 구조   

 

  IPv4주소는 32비트이며 32비트를 8비트로 단위로 나눠서 표현하는 것을 옥텟(Octet)이라고 하는데 32비트를 4개의 옥텟으로 나누어 10진수로 표현한다.

 

 

  또한, 이 IP 주소는 네트워크 주소(네트워크 ID)와 호스트 주소(호스트 ID)로 나뉘는데 네트워크 주소는 모든 호스트들을 관리하기가 어렵기 때문에 네트워크에 범위를 그룹(호스트들의 집합)으로 지정해 어떤 네트워크인지를 나타내고 호스트 주소는 네트워크 그룹 내에서 어느 컴퓨터인지를 나타낸다. 이 두 가지 정보가 합쳐져서 IP 주소가 된다.

 

 IP 주소 = 네트워크 주소(네트워크 ID) + 호스트 주소(호스트 ID)

 

 


    IP 주소 클래스(Class)   

 

  IP 주소는 네트워크 주소를 크게 만들거나 호스트 주소를 작게 만들어 네트워크 크기를 조정할 수 있다. 이 네트워크 크기는 클래스(Class)라는 개념으로 구분한다. 

 

 

 

  일반 네트워크에서는 A~C 클래스를 사용할 수 있다. A 클래스는 처음 8비트가 네트워크 주소이고 나머지 24비트가 호스트 ID이다. A 클래스의 1옥텟의 범위는 00000001~11111111로 10진수로는 1~127이 된다. 2~4옥텟의 범위는 각각 00000000~11111111로 0~255가 된다. 

 

 따라서, A 클래스의 네트워크 ID와 호스트 ID의 32비트 전체 범위는 1.0.0.0 ~ 127.255.255.255가 된다. 

 

 

 

 B 클래스는 처음 16비트가 네트워크 ID이고 나머지 16비트가 호스트 ID 이다. B 클래스의 1옥텟의 범위는 10000000~10111111로 10진수로는 128~191이 된다. 2~4옥텟의 범위는 각각 00000000~11111111로 0~255가 된다. 

 

 따라서, B 클래스의 네트워크 ID와 호스트 ID의 32비트 전체 범위는 128.0.0.0 ~ 191.255.255.255가 된다. 

 

 

 

 C 클래스는 처음 24비트가 네트워크 ID이고 나머지 8비트가 호스트 ID이다. C 클래스의 1옥텟의 범위는 11000000~11011111로 10진수로는 192~223이 된다. 2~4옥텟의 범위는 각각 00000000~11111111로 0~255가 된다. 

 

 따라서, C 클래스의 네트워크 ID와 호스트 ID의 32비트 전체 범위는 192.0.0.0 ~ 223.255.255.255가 된다. 

 

 

 

 

 여기서 주의할 점은 공인 IP 주소와 사설 IP 주소가 정해져 있다는 것이다.

 

 

 가정 LAN에서는 주로 C 클래스의 사설 IP 주소인 192.168.X.X가 주로 사용된다. 윈도우에서는 검색 창에 cmd를 입력 후 명령 프롬프트 창에서 ipconfig 명령어를 입력하면 사용할 수 있다. 

 

 

 [참고]

  • 공인 IP: 전 세계에서 유일한 IP로 ISP가 제공하며 외부에 공개되어 있기 때문에 인터넷에 연결된 다른 장비로부터 접근이 가능하다. 
  • 사설 IP: 한 네트워크 안에서 사용되는 IP 주소 IPv4의 부족으로 인해 모든 네트워크가 공인 IP를 사용하는 것은 불가능하기 때문에 네트워크 안에서 라우터를 통해 할당받는 가상의 주소이다. 외부에서 접속할 수 없다. 

 


 

    네트워크 주소와 브로드캐스트 주소   

 

  IP 주소에는 네트워크 주소와 브로드캐스트 주소도 존재하는데, 이 두 주소는 특별한 주소로 컴퓨터나 라우터가 자신의 IP로 사용해서는 안 된다.

 

 트워크 주소는 호스트 ID가 0(2진수로 00000000)인 주소이고 전체 네트워크에서 작은 네트워크를 식별하는데 사용된다. 즉, 그 작은 네트워크를 대표하는 주소가 된다. 

 

 브로드 캐스트 주소는 호스트 ID가 255(11111111)인 주소이다. 해당 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는데 사용되는 IP 주소이다. 즉, 해당 네트워크에 데이터를 전송하려면 호스트 ID에 255를 설정하면 된다. 

 

 

 


 

    서브넷의 구조   

 

  A 클래스 네트워크는 호스트 ID가 24비트여서 IP 주소를 1677만 7214개를 사용할 수 있다. 만약에 이 수 많은 컴퓨터에 브로드캐스트 패킷을 전송하면 모든 컴퓨터에 전송하는데 이는 네트워크가 정체되고 지연을 유발할 것이다.

 

 이처럼 A 클래스의 대규모 네트워크를 작은 네트워크로 분할하여 브로드캐스트로 전송되는 패킷의 범위를 줄일 수 있는데, 이처럼 네트워크를 분할하는 것을 서브넷팅(Subneting)이라고 하고, 분할된 네트워크를 서브넷(Subnet)이라고 한다. 

 

 그러면 기존의 네트워크 ID와 호스트 ID로 구성되어 있던 것이 네트워크 ID, 서브넷 ID, 호스트 ID로 나눠지게 된다. 즉, 호스트 ID에서 비트를 빌려 서브넷으로 만들 수 있다.

 

 


 

    서브넷 마스크   

 

  IP 주소를 서브넷팅하면 어디까지가 네트워크 ID이고 어디부터가 호스트 ID를 판단하기 힘들다. 이를 위해 서브넷 마스크라는 값을 사용한다. 즉, 서브넷 마스크는 네트워크 ID와 호스트 ID를 식별하기 위한 값이다. 이 값은 프리픽스(Prefix) 표기법으로 사용할 수 있는데 슬래시(/)로 비트 수를 나타낸다. 

 

 예를 들어, C 클래스 IP 주소를 서브넷팅해보면 C 클래스는 일반적으로 네트워크 ID가 24비트이다. 하지만, 호스트 ID에서 4비트를 빌려 네트워크 ID를 28비트로 만들면 네트워크 ID는 24비트, 서브넷 ID는 4비트, 호스트 ID는 4비트가 된다. 밑의 예제에서는  255.255.255.240/28로 표현할 수 있다.

 

 

 

 즉, 서브넷 마스크는 IP 주소의 네트워크 부분만을 나타나게 하여 같은 네트워크인지 판별하게 하는 마스크이다.

 

 


 

    라우터의 구조   

 

  그렇다면 네트워크를 분리하는 역할은 누가할까? 라우터(Router)가 수행한다. 

 

 

 

 네트워크를 분할한 다음에 컴퓨터 한 대가 다른 네트워크로 접속하려면 어떻게 해야 할까? 예를 들어 위의 그림에서 192.168.1.0/24 네트워크의 첫 번째 컴퓨터에서 192.168.2.0/24 네트워크의 첫 번째 컴퓨터로 데이터를 전송하려면 라우터의 IP 주소를 설정해야 한다. 이것은 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이(Default Gateway)를 설정해야  한다. 

 

 기본 게이트웨이는 컴퓨터의 네트워크를 설정하는 화면에 있다. 윈도우 10의 경우 "자동으로 IP 주소 받기"를 체크하면 기본 게이트웨이가 자동으로 설정된다. 

 

 

 "자동으로 IP 주소 받기"를 설정하면 192.168.1.0/24 네트워크의 첫 번째 컴퓨터의 기본 게이트웨이가 설정되었지만 이것만으로는  192.168.2.0/24 네트워크의 첫 번째 컴퓨터에 데이터를 보낼 수 없고 추가로 라우터의 라우팅(Routing)의 기능이 필요하다. 

 


 

    라우팅이란?   

 

  라우팅(Routing)은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송한다. 해당 경로 정보는 라우팅 테이블(Routing table)에 등록되어 있다. 

 

 

 

  라우팅 테이블에 경로 정보를 등록하는 방법은 수동 등록과 자동 등록이 있다. 수동으로 등록하는 방법은 소규모 네트워크에 적합하고, 자동으로 등록하는 방법은 대규모 네트워크에 적합하다. 자동으로 등록하는 방법은 라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정해 준다.

 

 이처럼 라우터 간에 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜(Routing Protocol)이라고 한다. 이 라우팅 프로토콜을 설정하여 라우터 간에 경로 정보를 서로 교환하고 그것을 라우팅 테이블에 등록해 나간다. 라우팅 프로토콜에는 RIP, OSPE, BGF 등이 있고 각각 다른 특징을 가지고 있다.