전공 수업 내용 정리 (문제 발생시 비공개합니다.)
클래스 기반 주소 지정
블록 내의 주소의 수 = 2^(32-n)
Sample Internet
Network mask
네트워크 주소 추출 방법 -> mask 이용
교집합처럼 생각하기. 마스크를 씌워서 더 작은 쪽으로 남긴다!
Example 5.16
라우터는 목적지 주소 201.24.67.32의 패킷을 수신한다. 라우터가 패킷의 네트워크 주소를 찾는 방법은?
답
해당 주소는 클래스 C에 속하기 때문에 라우터가 네트워크 주소를 찾기 위해서는 클래스 C의 기본 마스크인 255.255.255.0을 적용해야 한다.
서브네팅 전
- 위 그림은 subnetting 전의 클래스 B 주소를 사용하는 네트워크를 보여준다.
- 하나의 네트워크는 216개의 호스트로 구성되어 있으며, 전체 네트워크는 하나의 연결을 통해 인터넷의 라우터 중 하나에 연결된다.
- 라우터 - IP 주소, 스위치 - 맥 주소
서브넷팅 후
- 네트워크는 라우터를 사용하여 네트워크를 네 개의 하위 네트워크로 나눈다.
- 외부 인터넷들은 여전히 이들을 하나의 네트워크로 본다.(네트워크 주소, 즉 네트워크 시작 주소를 대표 주소로 간주한다.)
- 내부적으로 네트워크는 4개의 하위 네트워크로 구성되어 있다. 각 하위 네트워크는 이제 214개의 호스트를 가질 수 있다.(216 - 2(시작, 마지막 주소) = 214)
- 위 네트워크는 4개의 다른 단과대가 존재하는 대학 캠퍼스에 비유할 수 있다.
- subnetting 후, 각 단과대는 자체 하위 네트워크를 가지고 있지만, 여전히 전체 캠퍼스는 외부 인터넷을 위한 하나의 네트워크이다. ex) ㅇㅇ대 -> ㅇㅇ대 자연대, ㅇㅇ대 사범대, ㅇㅇ대 공대, ㅇㅇ대 경영대...
- /16 와 /18은 netid와 subnetid의 길이를 나타낸다.
- site 라우터는 서브넷의 개수와 그 서브넷이 어떻게 동작하는지 알아야 한다.
서브넷 마스크
서브넷 아이디로 바뀌는 부분만큼, 호스트 아이디에서 서브넷 아이디로 바꿔야 한다.
Example 5.20
예제 5.19에서는 클래스 B 네트워크를 4개의 sub네트워크로 나누었다.
클래스 B이므로 n = 16
n1 = n2 = n3 = n4 = 16 + log4(log(분할네트워크갯수), 몇 비트를 subnet을 위해 할당해야 하는지 알아내기 위한 로그) = 18. 총 18비트를 봐야 sub 네트워크의 주소를 알 수 있다. 즉, subnet mask는 18개의 1과 14개의 0을 가진다**(subnet mask = 11111111.11111111.11000000.00000000)**.
subnet 마스크는 255.255.192.0으로 클래스 B의 네트워크 마스크**(255.255.0.0)**와 다르다.
Example 5.21
예제 5.19에서 클래스B의 네트워크를 4개로 분할했다. 그 중 subnet 2의 주소 중 하나가 141.14.120.77이므로 서브넷 주소는 다음과 같이 찾을 수 있다.
서브넷 2의 주소가 141.14.120.77
subnet 네트워크 주소를 구할 때는 주소를 binary로 바꾼 후 계산하면 훨씬 계산이 편리하다.
슈퍼넷팅(Supernetting)
Subnetting의 개념과는 반대로 여러개의 작은 Network를 하나의 커다란 Network로 바꾸는 작업을 의미한다.
슈퍼넷 마스크
서브넷 구성 시 네트워크를 8개의 서브블록으로 나누려면 총 8비트가 필요하다.
따라서 n(=24) + log8(=3) = 27
Prefix and suffix
💡 블록의 주소 갯수는 prefix 길이의 값 n과 반비례한다.
Prefix = 네트워크 n 비트
suffix = 호스트 32-n비트
Example 5.22
전체 인터넷이 4,294,967,296개의 주소를 가진 하나의 블록으로 간주될 경우 prefix 길이와 suffix 길이는?
답 prefix 길이: 0 (블록의 수: 2^0 = 1)
suffix 길이: 32 (주소의 수(각 블록의 사이즈): 2^32 = 4,294,967,296)
이 single block에서는 32비트로 2^32 = 4,294,967,296개의 호스트를 정의할 수 있다.
Example 5.23
인터넷을 4,294,967,296개의 블록으로 나누고 각 블록이 하나의 주소를 가진다면 prefix 길이와 suffix 길이는?
답
prefix 길이: 32 (블록의 수: 2^32 = 4,294,967,296)
suffix 길이: 0 (주소의 수(각 블록의 사이즈): 2^0 = 1)
2^32 = 4,294,967,296 블록을 정의하는 데는 32비트가 모두 필요하다. 각 블록의 유일한 주소는 블록 자체에서 정의된다.
슬래시 표기법(Slash notation)
n = prefix의 길이
slash + prefix 길이를 같이 써주어야 한다.
Example 5.25
클래스 없는 주소 지정 방식에서, 블록 정보를 알기 위해서는 주소와 프리픽스를 알아야한다.
주소 정보만 알고 있다고 해서 주소가 속하는 블록 정보를 알 수는 없다.
Example 5.26
다음은 슬래시 표기법을 사용한 주소들이다.
- 주소 12.23.24.78/81.0.0.0 (8개의 1, 24개의 0)
- prefix 길이: 8, suffix 길이: 24
- 네트워크 마스크: 255.0.0
- 주소 130.11.232.156/161.1.0.0 (16개의 1, 16개의 0)
- prefix 길이: 16, suffix 길이: 16
- 네트워크 마스크: 255.255.0.0
- 주소 167.199.170.82/271.1.1.11100000 (27개의 1, 5개의 0)
- prefix 길이: 27, suffix 길이: 5
- 네트워크 마스크: 255.255.224
첫번째, 마지막 주소 구하기
- 특수한 경우
- 첫 번째 주소: suffix를 다 0으로 만들어 준다.
- 마지막 주소: suffix를 다 1로 만들어 준다.
- 일반적인 경우마지막 주소: 위의 보수(프리픽스만큼 0, 나머지를 1로 설정)를 취하고 AND 연산
- 첫번째 주소: 프리픽스만큼 1, 나머지를 0으로 설정하고 AND 연산
Example 5.27
블록에 있는 주소 중 하나가 167.199.170.82/27일 때, 네트워크의 주소 갯수, 첫 번째 주소, 마지막 주소는?
답
n=27이므로 네트워크 마스크에는 27개의 1과 5개의 0이 존재한다. ☞ 255.255.225.224a. 네트워크의 주소 갯수(총 블록 갯수): 2^(32 - n) = 2^(32 - 27) = 2^5 = 32b. 첫 번째 주소(네트워크 주소): 마스크와 주소를 AND 연산 ☞ 167.199.170.64/27
Example 5.28
블록에 있는 주소 중 하나가 17.63.110.114/24일 때, 네트워크의 주소 갯수, 첫 번째 주소, 마지막 주소는?
답
n=24이므로 네트워크 마스크에는 24개의 1과 8개의 0이 존재한다. ☞ 255.255.225.0
a. 네트워크의 주소 갯수(총 블록 갯수): 2^(32 - n) = 2^(32 - 24) = 2^8 = 256
b. 첫 번째 주소(네트워크 주소): 마스크와 주소를 AND 연산 ☞ 17.63.110.0/24
Example 5.29
블록에 있는 주소 중 하나가 110.23.120.14/20일 때, 네트워크의 주소 갯수, 첫 번째 주소, 마지막 주소는?
답
n=20이므로 네트워크 마스크에는 20개의 1과 12개의 0이 존재한다. ☞ 255.255.240.0a. 네트워크의 주소 갯수(총 블록 갯수): 2^(32 - n) = 2^(32 - 20) = 2^12 = 4096b. 첫 번째 주소(네트워크 주소): 마스크와 주소를 AND 연산 ☞ 110.23.112.0/20
Example 5.30
ISP(Internet service provider, 인터넷 서비스 제공자)가 1000개의 주소 블록을 요청했을 때 부여되는 블록의 첫 번째 주소와 마지막 주소?
답
a. 1000보다 크면서 담을 수 있는 가장 작은 주소의 개수 1024(1024 = 2^10). suffix = 10
b. 블록의 prefix 길이 n = 32 - 10 = 22 ☞ prefix = 22
c. 시작 주소는 18.14.12.0
부여되는 블록: 18.14.12.0/22
첫 번째 주소: 18.14.12.0/22
마지막 주소: 18.14.15.255/22
Example 5.31
조직이 과거에 클래스 A 블록을 73.0.0.0으로 지정했다고 가정하자. 블록이 권한에 의해 취소되지 않는 경우 classless 아키텍처는 조직이 classless addressing에 블록 73.0.0.0**/8**을 가지고 있다고 가정한다.
=> 서브네트워크에 대한 주소 할당에서 적용되는 제한사항은 네트워크 주소 할당에 사용되는 것과 유사하다.
Example 5.32- 서브 네트워크
조직에 블록 130.34.12.64/26이 부여된다.
조직은 각각 동일한 수의 호스트를 가진 4개의 서브 네트워크를 필요로 한다. 이때 하위 네트워크를 설계하고 각 네트워크의 정보를 찾아라.
답
전체 네트워크의 주소 갯수는 N = 2^(32 - 26) = 2^6 = 64개이다.
네트워크의 첫 번째 주소는 130.34.12.64/26이고 마지막 주소는 130.34.12.127/26이다.
하위 네트워크 설계:
- 4개의 각 서브 네트워크에 16개의 주소를 부여한다. (64/4 = 16)
- 각 하위 네트워크에 대한 하위 네트워크 마스크는 다음과 같다.
'CS > Network' 카테고리의 다른 글
[네트워크] TCP/IP 프로토콜의 핵심을 쉽게 이해해보자! (0) | 2025.02.13 |
---|---|
[네트워크] NAT (0) | 2025.01.29 |
[네트워크] IP 주소 개요 (0) | 2025.01.29 |
[네트워크] 소켓 프로그래밍: 프로토콜, 클라이언트와 서버의 함수호출 (0) | 2025.01.29 |
[네트워크] 소켓 프로그래밍 개요 (0) | 2025.01.29 |