등장배경
- 대규모 내부망을 가진 집단 사이에서 메시지를 주고 받는 상황
- 이더넷 케이블을 링크 계층에 연결했을 때의 문제점들(보안상의 문제 + 이더넷 패킷이 네트워크상 모든 호스트를 거쳐야 함.)
- 효율적 연결을 위해 링크 계층 수준에선 직접 연결되지 않은 호스트 사이에서도 서로 패킷을 주고 받을수 있게 네트워크 계층에서 라우팅할 필요가 있다.
서브네팅
- 브로드캐스트의 영역을 나누는 것. 서브네팅을 하지 않으면 브로드캐스트의 도메인이 너무 커져서 브로드캐스팅이 너무 많이 발생하게 됨
- 네트워크 관리자가 네트워크 성능을 향상시키기 위해, 자원을 효율적으로 분배하는 것. IP주소를 아낄 수 있다.
- 하나의 네트워크가 국가급 네트워크라 가정하면 서브네팅은 한 국가를 여러 도시의 네트워크로 나누는 행위로 묘사
정의
서브넷 : 네트워크의 논리적 분할. 어떤 기관에 소속된 네트웍이지만 따로 분리되어 한 부분으로 인식될 수 있는 네트웍
서브넷 마스크 : 서브네팅을 하기 위한 도구. 주어진 네트워크를 가공해서 쓰는 경우 사용된다.
특징
32 bit 숫자로서, IP 주소와 동일하게 숫자 네 개를 마침표로 구분하여 쓴다.
어느 두 호스트의 IP 주소를 각각 서브넷 마스크와 비트 AND 연산하여 그 결과가 같으면, 두 호스트는 같은 서브넷에 있다고 친다.
호스트 | IP 주소 | 서브넷 마스크 | IP 주소와 서브넷 마스크를 비트 AND한 값 |
A1 | 18.19.100.1 | 255.255.255.0 | 18.19.100.0 |
A2 | 18.19.100.2 | 255.255.255.0 | 18.19.100.0 |
B1 | 18.19.200.1 | 255.255.255.0 | 18.19.200.0 |
사용법
서브넷 마스크는 1만 연달아 나온 뒤 0이 주욱 이어지는 꼴이다.
서브넷 마스크 | 서브넷 마스크 이진수 형태 | 상위 비트 수 | 가능한 호스트 개수 |
255.255.255.248 | 11111111 11111111 11111111 11111000 | 29 | 6 |
255.255.255.192 | 11111111 11111111 11111111 11000000 | 26 | 62 |
255.255.0.0 | 11111111 11111111 00000000 00000000 | 16 | 65534 |
255.0.0.0 | 11111111 00000000 00000000 00000000 | 8 | 16777214 |
서브넷마다 두 개의 주소는 예약되어 있어 호스트에 할당할 수 없다. (브로드캐스트 주소, 네트워크 주소)
// 네트워크 주소
networkAddress = ipAddress & subnetMask;
// 브로드캐스트 주소
broadcastAddress = networkAddress | (~subnetMask);
CIDR (Classes Inter-Domain Routing)
네트워크 주소와 서브넷을 간단히 줄여 쓰는 방법. 서브넷 마스크는 이진수로 나타내면 1이 n개 나온 뒤,
0이 (32-n)개 붙는 형식이다. 따라서 슬래쉬로 구분하여 (네트워크주소/서브넷 마스크의 1인 비트 개수) 형식으로 쓸 수 있다.
Ex) 18.19.100.0/24
'게임 서버 프로그래밍 > 네트워크 개념정리' 카테고리의 다른 글
TCP (Transmission Control Protocol) (0) | 2020.02.19 |
---|---|
UDP (User Datagram Protocol) (0) | 2020.02.19 |
ARP (주소 결정 프로토콜) (0) | 2020.02.18 |
IP 주소와 패킷 구조 (0) | 2020.02.18 |
이더넷/IEEE 802.3 (0) | 2020.02.18 |