티스토리 뷰

Network

[Network]서브넷(Subnet)

heyhyo 2018. 8. 31. 16:55

이 글을 읽기전에 IP주소의 개념과 네트워크 클래스를 알 필요가 있다. 따라서 이 글을 읽기 전에 링크를 참고하기를 추천한다.


[Network]IP주소(IP Address)

http://hyoje420.tistory.com/10


[Network]네트워크 클래스(Network Class)

http://hyoje420.tistory.com/31




서브넷 탄생배경



클래스 단위로 네트워크를 분류하다보니, 어떤 기업에서는 적은 양의 호스트 주소가 필요한데, B Class 네트워크를 할당받아서 IP주소에 여유가 생기게 되고, 어떤 기업에서는 많은 양의 호스트 주소가 필요한데, C Class 네트워크를 할당받아서 IP주소가 부족해지는 현상이 생기게 된다.


따라서 클래스로만 네트워크를 분류하는 것은 비효율적이라는 결론이 나오고, 좀 더 적절한 단위로 네트워크를 분할해야할 필요성이 생기게 된다. 이러한 이유로 인해서 서브넷의 개념이 탄생하게 된다.




서브넷(Subnet)



클래스 단위로 분류를 하게 되면 적절한 네트워크의 크기로 구분할 수 없다. 따라서 서브넷으로 분할하여 사용한다. 서브넷(Subnet)이라는 것은 하나의 네트워크가 분할되어 나눠진 작은 네트워크이다. 네트워크를 분할하는 것을 서브네팅(Subnettin)이라고 한다. 그리고 이 서브네팅은 서브넷 마스크(Subnet Mask)를 통하여 수행될 수 있다. 예로 들어서 자세하게 설명해 보겠다. 설명의 편의를 위하여 2진수로 표현하였다.


11001101 00000000 00000001 xxxxxxxx


이 IP주소는 최상위 비트가 11이므로 C Class 네트워크라고 할 수 있다. 따라서 앞의 24비트는 네트워크의 주소이고 뒤의 8비트는 호스트 주소이다. 기본적으로 C Class 네트워크는 기본 서브넷 마스크로 /24 를 가지고 있다. 즉 서브넷 마스크 값은 네트워크 주소를 나타내는 비트 수를 명시한 값이다. 이를 2진수로 표현하자면 11111111 11111111 11111111 00000000 으로 표현될 수 있을 것이다.


여기서 이 네트워크가 가질 수 있는 호스트 주소의 수는 256개 이다. 하지만 이 네트워크를 호스트를 128개씩 가지는 두 개의 네트워크로 분할하고 싶을 때 서브넷으로 분할한다.


11001101 00000000 00000001 1xxxxxxx
11001101 00000000 00000001 0xxxxxxx


위와 같이 네트워크를 분할하고 싶다면, 네트워크 주소를 나타내는 부분이 25자리로 기존의 C Class 네트워크보다 네트워크 주소를 나타내는 부분이 한 자리 더 많다. 이렇게 되면 서브넷 마스크는 /25 라고 표현할 수 있을 것이다.


만약 서브넷 마스크를 변경하여 네 개의 서브넷으로 분할하고 싶다면, 한 자리 더 네트워크 주소로 넘기면 된다. 하지만 이렇게 분할을 많이 하게 되면, 하나의 서브넷에서 가질 수 있는 호스트 주소가 줄어들게 되므로, 로컬 네트워크의 규모에 따라서 서브넷 마스크 값을 잘 조정하는 것이 필요하다.


그렇다면 서브넷 마스크를 어떻게 활용해서 서브넷을 구별하는 것일까? 위의 예를 빌려와서 하나의 IP가 있다고 생각해보자


205.0.1.129


하나의 IP주소이다. 하지만 서브넷 마스크값은 다음과 같다. 여기서 서브넷 마스크가 IP주소의 형태와 비슷하게 생겼다고 해서 IP주소랑 혼동해서는 안된다. 서브넷 마스크 값은 단지 현재 내가 속한 네트워크가 어디까지 네트워크 주소를 표현하는지 명시하는 값일 뿐이다.


255.255.255.128


이런 마스크 값을 가지고 있다면, 앞에서 25개의 비트는 네트워크 주소라는 것을 알 수 있다.


205.0.1.129 ~ 205.0.1.255 라는 네트워크에 속한 호스트의 IP주소라는 것을 알 수 있다. 이는 아래와 같이 간소화하여 표현할 수 있다.


205.0.1.129/25


뒤의 /25는 최상위 비트부터 25비트까지가 네트워크 주소로 인식된다는 것을 의미한다. 따라서 우리가 어떠한 네트워크에 들어가도 서브넷 마스크라는 값을 반드시 가지고 있게 된다. 나의 컴퓨터가 연결된 네트워크의 주소는 아래와 같다.





이 네트워크는 서브넷 마스크가 255.255.255.0으로 서브네팅 되어있지 않은 C Class 네트워크에 속해있다는 것을 할 수 있다.




서브넷이 필요한 이유



이러한 기술들은 결국 각 클래스로 나눠진 네트워크를 운영중인 서비스의 규모에 맞게 분할하여 사용하기 위한 기술이다. 따라서 이런 기술을 통해서 A Class 네트워크와 같은 매우 큰 네트워크를 작게 나눠서 사용하면서, 낭비되는 IP주소 자원을 최소화하려는 것이 주된 목적이다.


다른 이유로는 브로드 캐스팅을 사용할 때이다. 이 기술은 특정 네트워크에 연결된 모든 기기에 하나의 메시지로 동시에 데이터를 보내는 것이다. 이를 사용할 때 연결된 호스트 디바이스가 많다면, 당연히 성능의 저하가 올 수 있다. 따라서 네트워크의 규모를 줄여서 브로드 캐스팅으로 인한 부하를 줄일 수 있는 것이다.




참고



https://ko.wikipedia.org/wiki/%EB%B6%80%EB%B6%84%EB%A7%9D

http://raisonde.tistory.com/entry/IP%EC%A3%BC%EC%86%8C-ABC%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%B0%8F-%EC%84%9C%EB%B8%8C%EB%84%B7%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4


'Network' 카테고리의 다른 글

[Network]DNS Server(Domain Name System Server)  (0) 2018.09.05
[Network]네트워크 클래스(Network Class)  (0) 2018.08.31
[Network]IP 주소(IP Address)  (2) 2018.07.10
[Network]Web Server & WAS  (5) 2018.07.02
[Network]3-Way Handshake  (0) 2018.06.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함