Ⅱ IPv4 주소 방식, Slash Notation, Classless Addressing
Review
전송순서에 맞춰서 데이터를 전송해주는 방식이 데이터그램 방식
경로를 먼저 만들어놓고 패킷을 순서에 따라서 전송해주는 가상회선방식
7.4.1 IPv4 주소 방식
주소하나에는 두 가지 의미를 포함한다.
네트워크ID, 호스트ID
클래스를 A~E까지 구분한다.
각 클래스를 나누는 기준은 첫 번째 비트
32비트 중
0 A
10 B
110 C
1110 D
현재 시중에 사용하는 IP주소는 클래스 A, B, C 중 하나가 될 것
주소 생성 예외조건
x.y.z.w
주소를 만드는 데 있어서 예외조건
1. 127.x.x.x : loopback test
127로 시작하는 주소는 다른 용도가 있으므로 사용하지 않는다.
일반사용자들에게 IP로 할당할 수 없는 주소에 해당한다.
내 컴퓨터의 네트워크 기능이 정상인지 확인할 때 사용한다.
127.0.0.1 호스트 사이에 링크는 살아있다는 것을 의미한다.
상대가 네트웤이 안 될 때 ping을 쏴서 확인한다.
127.0.0.1은 바로 본인 컴퓨터를 의미하며
자신의 컴퓨터 네트워크가 제대로 동작하는지를 확인해볼 수 있다.
2. NW or Host : 모든 비트가 0 이면 only itself
바로 자기 자신이라는 뜻이다.
ex) 125.0.0.0 : 125번 네트워크 자신
호스트가 모두 0인 경우, 125는 아파트 단지 이름으로 이해하면 된다.
3. NW or Host : 모든 비트가 1이면 broadcast
ex) 293.252.23.255 : x.y.z까지는 네트워크.
255는 8비트가 모두 1인 경우이므로 호스트 부분이 다 1인 것이다.
즉, 모든 호스트 전부를 일컫는 것이다. 이를 브로드캐스트라고 한다.
293.252.23 아파트 단지 내 모든 세대를 일컫고자 할 때 사용한다.
------
1. 159.32.0.5/16 (slash notation)
1) class : 159 = 128 + 16(31보다 작은 2^n) + 8 (15보다 가장 가까운) + 4 (7과 가장 가까운) + 2 + 1
10011111 (B클래스)
159.32까지가 네트워크 (바뀌지 않는 값)
2) address range : 159.32.0.1 ~ 159.32.255.254 (예외조건을 모두 피한 것)
3) NW ID : 159.32.0.0 (아파트 이름)
4) How many allocable hosts? 2^16 - 2 (모두 0인 것, 모두 1인 것)
5) broadcast 값 = 159.32.255.255 (윈도우에서는 계산해주지만 유닉스/리눅스는 내가 직접 계산해서 넣어야 한다.)
6) 254개가 클래스 C에 할당된다.
7) slash notation 네트웤이 16비트까지라는 의미
클래스 C는 슬래시 24가 된다.
지금까지 봐온 클래스는 딱 떨어지는 값이지만 그 경우는 사실 일반적이지 않다.
슬래시 18, 슬래시 24 이부분들을 고려해야 한다.
------
2. 126.0.255.127 사용가능한가
클래스 A, 128보다 작으므로 첫번째 비트는 1이 아니란 의미이므로 클래스 A
126.0.0.0
-> 126.0.255.127/8
------
Subnet Mask
nw --> 비트 1, Host --> 비트 0
① /8 : 255.0.0.0 (11111111.000000 ...)
② /16 : 255.255.0.0
③ /24 : 255.255.255.0
④ /18 : 255.255.11(128+64=192)000000.0
⑤ /30 : 255.255.255.252 (우측부터 빼가는 게 더 빠른 경우)
-----
클래스없는 주소지정 (Classless Addressing)
- 클래스 기반 주소지정에서 서브네팅(subnetting)과 수퍼네팅(supernetting)은 실제로 주소 고갈 문제를 해결하지 못하였다.
- 인터넷의 성장에 따라, 장기적인 관점에서 해결책으로 더 큰 주소 공간이 필요했다. 그러나 더 큰 주소 공간은 IP 패킷 형식의 변화가 필요한 IP 주소 길이의 증가가 필요하다.
- 이미 장기적인 관점의 해결책으로 IPv6(나중에 설명)가 고안되었지만, 단기적인 관점에서 같은 주소를 사용하며 각 기관별로 주소를 공평하게 분배하기 위한 방법도 고안되었다.
- 단기적인 관점의 해결책에서는 클래스 없는 주소지정 방식의 IPv4 주소가 사용된다. 즉 주소 고갈(address depletion)을 해결하기 위해 클래스 권한이 제거되었다.
하나의 네트워크를 잘게 쪼개는 경험이 서브넷팅

클래스 없는 주소지정 : 슬래시 표기법(CIDR: Classless Interdomain Routing)
3. 167.199.170.82/27
① Range? (어디서부터 어디까지 할당가능한가)
② From: IP & SubnetMask
167.199.170.82 - - - - - - - - - -> 82 = 64 + 16 + 2 -> 01010010
255.255.255.11100000
---------------------------
167.199.170.01000000
(비트 연산시, 여기까진 그대로 떨어진다)
167.199.170.010 여기까지 네트워크
167.199.170.010
올 수 있는 조합
3비트가 쓰였으므로 나머지 5비트가 남는다. 거기에 가장 작은 숫자가 남은 비트가 모두 00000인 것이 가장 작다.
거기서부터 11111 까지가 최댓값
이 범위가 바로 우리가 원하는 Range가 된다.
From: 167.199.170.01000001(=65) ~ 167.199.170.01011110 (=94)
할당 가능한 애는 65부터 94번까지.
맨마지막 주소는 94번.
③ N/W ID : 167.199.170.64
④ Broadcast : 167.199.170.95 ( 01011111인 경우)
서브넷 마스크를 잘못 설정하면 네트워크가 완전히 망가진다.
따라서 서브넷 마스크가 중요하고 잘 설정해야 한다.
4. 203.254.30.0/24
클래스 C
254대 제공 가능
강의실A/B/C/D - 대략 60명 수용한다 가정
① How many Subnets?
4개 (사용하는 강의실 수)
2^2
2비트가 있으면 서브넷을 구성할 수 있구나 생각 가능
203.254.30.2bit.6bit
2bit에 올 수 있는 조합: 00, 01, 10, 11 (각각 A~D 강의실로 할당 가능)
6bit에 올 수 있는 조합: 000001, 111110
강의실 A: 203.254.30.1 ~ 203.254.30.62/26
강의실 B: 203.254.30.65 ~ 126/26
강의실 C: 203.254.30.129 ~ 190/26
강의실 D: 203.254.30.193~254/26
지금 이게 서브넷팅을 한 것 ; 4개의 작은 주소로 나누는 것
② 그런데, 네트웤마다 뒤에 보이는 서브넷마스크가 다 달라야 한다.
이걸 다음 시간에 할 것이다.
보통 저 네트웤에서 각 네트웤마다 첫번째 주소를 디폴트 라우터에 할당한다.
잘못 계산하면 엉뚱한 데 IP를 할당하므로 나중에 라우팅이 안 된다.
그래서 가장 기본이면서 중요한 내용.
꼭 집에 가서 다시 한 번 풀어봐야 한다.