본 포스팅은 'Wireshark로 배우는 컴퓨터 네트워크' 책과 동아대학교 컴퓨터네트워크 과목을 수강한 후 요약한 글입니다.
목차
1. 클래스 기반 주소지정
1.1 2계층 주소지정
1.1.1 블록에서 정보 추출하기
1.1.2 네트워크 주소
1.2 3계층 주소지정 : 서브네팅
1.2.1 서브넷 마스크
1. 클래스 기반 주소지정
1.1 2계층 주소지정
- IPv4 주소지정의 목적은 인터넷 패킷을 위한 (네트워크층의) 목적지를 지정하는 것
- 조직에 A, B, C 클래스 단위로 할당
- 네트워크 내의 모든 주소는 한 블록에 속하므로 클래스 기반 주소지정에서 각 주소는 netid와 hostid 부분을 포함한다.
(ex. 동아대는 168.155.*.*)
- netid는 네트워크 정의, hostid는 네트워크에 연결된 특정 호스트 정의
1.1.1 블록에서 정보 추출하기
- 블록은 주소의 범위이다.
- 블록 내의 주소가 주어지면, 블록에 속한 주소의 수(Host 숫자), 처음과 마지막 주소를 추출할 수 있다.
- 블록의 클래스를 찾으면 netid의 비트 수인 n값을 알 수 있다.
- 블록 내의 주소의 수 N = 2^32-N
- 처음 주소는 왼쪽의 n비트를 유지하고 오른쪽의 (32-n)비트를 0으로 함으로써 구할 수 있다.
- 마지막 주소는 왼쪽의 n비트를 유지하고 오른쪽에 (32-n)비트를 1로 함으로써 구할 수 있다.
예제 4.10
블록 내의 주소가 73.22.17.25일 때 블록에 속한 주소의 수, 처음 주소와 마지막 주소를 구하라
풀이 : 73은 0과 127 사이의 값이므로 이 주소의 클래스는 A이다. A클래스이므로 n은 8
이 블록에 속한 주소의 수는 2^32-8 = 2^24 = 16,777,216개
처음 주소는 73.0.0.0/8 ( 8은 n의 값을 의미, 왼쪽 8비트를 유지하고 오른쪽 24비트를 0으로 만든다)
마지막 주소는 73.255.255.255 ( 왼쪽 8비트를 유지하고 오른쪽 24비트를 1로 만든다)
1.1.2 네트워크 주소
- 네트워크 주소(Network Address)인 첫 주소는 목적지 주소로 패킷을 전송하는데 사용
- 네트워크 주소는 네트워크 식별자이다.
- 네트워크가 n개로 구성되어 있다고 하면 라우터도 n개의 인터페이스를 가진다.
- 네트워크 주소를 찾은 후 라우터는 라우팅 테이블을 참조하여 패킷이 전송되어야 할 인터페이스를 찾는다,
만약 네트워크 주소가 없다면?
모든 주소가 라우팅 테이블에 저장되어 있어야 한다. 그러면 라우팅 테이블이 어마무시하게 커져버리는 문제점이 생긴다.
1.1.3 네트워크 마스크
- n개의 왼쪽 비트는 1이고 (32-n)개의 오른쪽 비트는 0인 32비트의 수 (netid만큼 1로 채움)
- 목적지 주소에서 네트워크 주소를 뽑아내는 데 사용 (뒤에는 신경 안씀, 뒤에는 내부 라우터가 처리..)
- 디폴트 마스크(defalut mask)라고도 함
- 라우팅테이블을 단일 식별자로 넣어줌으로서 간결하게 유지 가능하게 해줌.
- 패킷의 목적지 주소에서 네트워크를 추출하기 위해 AND연산 이용
예제4.12
라우터가 목적지 주소가 201.24.67.32인 패킷을 수신했다. 라우터가 패킷의 네트워크 주소를 찾은 방법을 보여라.
풀이 : 201은 192와 223사이이므로 클래스C이다.
목적지 주소 : 201.24.67.32
디폴트 마스크 : 255.255.255.0
----------------------------------------------
답 : 네트워크 주소 : 201.24.67.0
1.2 3계층 주소지정 : 서브넷팅
인터넷 내의 호스트에 도달하기 위하여 먼저 네트워크에 도달해야 하고, 그 다음 호스트에 도달해야 한다. 다음과 같은 이유로 2계층보다 더 많은 계층이 필요함을 알게 되었다.
첫번째, 클래스 A나 B를 받은 조직이 보안과 관리를 더 잘하기 위해 몇 개의 작은 서브 네트워크로 나눌 필요가 있었다.
두번째, 클래스 C 블록은 대부분의 조직이 필요한 크기보다 작으므로 클래스A나 B블록을 받은 조직은 블록을 더 작은 서브블록으로 나누어 다른 조직들과 공유할 수가 있었다.
블록을 작은 블록으로 나누는 개념을 서브넷팅(Subnetting)이라고 한다. 서브넷팅에서 각 서브네트워크는 자신의 서브넷 주소를 가진다!(0으로 시작 안 할 수도 있다는 소리)
위 그림은 클래스 B 주소를 사용하는 네트워크가 서브넷팅 하기 전의 구성을 보여준다.
2^16개의 호스트를 가진 하나의 네트워크로 되어 있다. 한 개의 연결을 통하여 전체 네트워크가 한 라우터에 연결되어 있다.
위 그림은 그림4.21의 네트워크를 서브넷팅한 네트워크를 보여준다. 전체 네트워크는 같은 라우터를 통하여 인터넷에 연결된다. 그러나 네트워크는 별도의 라우터를 사용하여 네 개의 서브넷으로 나누었다. 각 서브네트워크는 2^14개의 호스트를 가질 수 있다.(2비트를 빌려써서!, 4개의 서브넷으로 나누는데 사용)
네트워크는 네 개의 서로 다른 학부(건물)을 가진 대학 캠퍼스에 속할 수 있다. 서브넷팅 후에 각 학부는 서브네트워크를 가지나 외부 네트워크에서는 전체 네트워크가 하나의 네트워크로 보인다.
(외부에서 볼 때는 141.14.0.0 으로 보인다. 인터넷 라우터에서는 /16 적용, 사이트 라우터에서는 /18 적용)
1.2.1 서브넷 마스크
- 네트워크 마스크는 네트워크가 서브넷팅되지 않은 경우 사용
- 네트워크를 몇 개의 서브넷으로 나눌 경우 각 서브넷에 대해 서브넷 마스크 필요
- 변경된 부분은 hostid에서 빌려쓴 비트 수다.
- 서브넷팅은 netid의 길이를 증가시키고 hostid의 길이는 감소시킨다.
- 네트워크를 같은 수의 호스트를 가지는 s(블록 수)개의 서브넷으로 나누면 다음과 같이 각 서브넷의 subnetid를 구할 수 있다.
- n은 netid의 길이고 nsub는 각 subnetid의 길이, s는 2의 거듭제곱인 서브넷의 개수
위 내용을 보고 예제 4.14 그림으로 돌아가보면,
클래스 B 네트워크를 네 개의 서브넷으로 나누어서 n = 16, 네개의 서브넷으로 나눴기에 s=4 즉, nsub가 18이다. 이것은 서브넷 마스크가 18개의 1, 14개의 0을 가진다는 것을 의미한다. 네트워크 마스크(디폴트마스크)는 255.255.0.0 이고 서브넷마스크는 255.255.192.0이다. 서브넷 마스크와 네트워크 마스크와 다름을 알 수 있다!
'Computer Science > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터네트워크] OSI 모델과 계층구조 (0) | 2023.04.10 |
---|---|
[컴퓨터네트워크] IP주소 ① (0) | 2023.04.07 |
[컴퓨터네트워크] 프로토콜(Protocol) (0) | 2023.04.06 |