0. 도입
- OSI 7계층에서 주소를 가지고 있는 계층은 2계층(데이터링크 계층)과 3계층(네트워크 계층)임
- 2계층은 물리 주소인 MAC 주소를 사용하고, 3계층은 논리 주소인 IP 주소를 사용함
- 컴퓨터와 컴퓨터 간의 통신은, IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 이루어짐
1. ARP란?
- Address Resolution Protocol
- IP 주소로부터 MAC 주소를 구하는, IP와 MAC 주소의 다리 역할을 하는 프로토콜
- 논리(가상) 주소인 IP 주소를 물리(실제) 주소인 MAC 주소로 변환함
- 이와 반대로 RARP를 통해 MAC 주소를 IP 주소로 변환하기도 함
브로드캐스트
송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식
유니캐스트
고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식
- 장치 A가 ARP Request 브로드캐스트를 보내서 특정 IP 주소에 해당하는 MAC 주소를 찾음
- 그러고 나서 해당 주소에 맞는 장치 B가 ARP Reply 유니캐스트를 통해 MAC 주소를 장치 A에게 반환하는 과정을 거쳐 IP 주소에 맞는 MAC 주소를 찾게 됨
2. 홉바이홉 통신
- Hop by Hop. 홉(Hop)이란? 영어 뜻 자체로는 건너뛰는 모습을 의미
- IP 주소를 통해 통신하는 과정을 홉바이홉 통신이라고 함
- 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것
- 수많은 서브네트워크 안에 있는 라우터의 각 라우팅 테이블 IP를 기반으로, 패킷을 전달하고 또 전달해나가며 라우팅을 수행해 최종 목적지까지 패킷을 전달함
- 즉, 통신 장치에 있는 라우팅 테이블의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속해서 이동하는 라우팅 과정을 거쳐 패킷이 최종 목적지까지 도달하는 통신
3. IP 주소 체계
3.1. IP 주소의 특징
- 사용자가 변경 가능한 논리 주소
- 주소에 레벨(Class)이 존재. 그룹을 의미하는 네트워크 주소와 호스트 주소로 나뉨
3.2. IP 주소의 종류
- IP 주소는 IPv4와 IPv6로 나뉨
- IPv4는 32비트, IPv6는 128비트임
- 추세는 IPv6로 가고 있지만 현재 가장 많이 쓰이는 주소 체계는 IPv4이며 이후에 설명할 때도 IPv4를 기준으로 설명함
3.3. IPv4 알아보기
- IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라고 불리는 8비트 단위로 나누고, 각 옥텟을 . 으로 구분함
- 이러한 IP주소는 네트워크 주소와 호스트 주소 두 부분으로 나뉘게 됨
네트워크 주소
호스트들을 모은 네트워크를 지칭하는 주소 (호스트의 집합)
호스트 주소
하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소
ex. 서울시 강남구 역삼동 소영아파트 101동 202호 (네트워크 주소 호스트 주소)
- IP 주소 체계는 필요한 호스트 IP의 개수에 따라 네트워크 크기를 다르게 할당할 수 있는 클래스 개념을 도입함
- 즉, 클래스는 하나의 IP 주소에서 네트워크 영역과 호스트 영역을 나누는 방법을 의미함
3.4. 클래스 기반 할당 방식
- IP 주소 체계에는 클래스 A, 클래스 B, 클래스 C, 클래스 D, 클래스 E 총 5개의 클래스가 있음
- 클래스 A, B, C는 일대일 통신으로 사용되고 클래스 D는 멀티캐스트 통신, 클래스 E는 앞으로 사용할 예비용으로 사용됨
3.4.1. 클래스 A
- 클래스 A는 하나의 네트워크가 가질 수 있는 호스트 수가 가장 많은 클래스
- IP 주소를 32자리 2진수로 표현했을 때, 맨 앞자리 수가 항상 0인 경우가 클래스 A
- 즉, 0으로 시작하는 IP 주소
- 2진수로 표현하면 0000 0000. 0000 0000. 0000 0000. 0000 0000 ~ 0111 1111. 1111 1111. 1111 1111. 1111 1111
- 10진수로 표현하면 0.0.0.0 ~ 127.255.255.255
0 네트워크 | 호스트 | 호스트 | 호스트 |
- 클래스 A는 네트워크 주소를 나타내는 부분이 1개의 옥텟, 호스트 주소를 나타내는 부분이 3개의 옥텟이므로 네트워크 주소는 2^7(128)개와, 한 네트워크당 2^24(16,777,216) - 2 개의 호스트 주소를 갖게 됨
-2를 한 이유
IP 체계에서 네트워크의 첫 번째 주소는 네트워크 주소로 사용되고 가장 마지막 주소는 브로드캐스트 주소로 네트워크에 속해 있는 모든 컴퓨터에 데이터를 보낼 때 사용됨
3.4.2. 클래스 B
- 10으로 시작하는 IP 주소
- 10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
- 128.0.0.0 ~ 191.255.255.255
10 네트워크 | 네트워크 | 호스트 | 호스트 |
- 네트워크 주소는 2^14개, 한 네트워크당 2^16 - 2개의 호스트 주소를 가짐
3.5. IPv4 주소 체계의 문제점
(1)
인터넷이 상용화되고 인터넷에 연결되는 호스트 수가 폭발적으로 증가하여 기존의 클래스풀 기반의 주소 체계는 증가하는 IP 주소 요구를 감당하기에 턱없이 부족
(2)
초창기에 상위 클래스(클래스 A)를 할당받은 조직에서 해당 주소들을 다 사용하지 못하며 수천만 개의 IP 주소가 낭비되고 있음
이러한 문제를 해결하기 위해 CIDR, DHCP, IPv6, NAT가 나오게 됨
4. CIDR
- Classless Inter-Domain Routing
- 클래스 없는 도메인간 라우팅 기법
- 기존 IP 주소 할당 방식이었던 클래스를 대체하여 IP 주소의 네트워크 영억, 호스트 영역을 유연하게 나누어줌
4.1. 서브넷 마스크
- 기존 클래스풀(Classful) 방식과는 다르게 CIDR은 네트워크 부분과 호스트 부분을 1비트 단위까지 구분할 수 있어 IP 주소 낭비를 해결할 수 있게 됨
ex) 192.168.10.1
기존 클래스 주소 체계에서는 IP 주소가 192로 시작하기에 클래스 C에 해당한다는 것을 알 수 있음
192.168.10까지가 네트워크 주소고 나머지 1이 호스트 주소이구나.
그러나 CIDR은 클래스가 없는데 어떻게 네트워크 영역과 호스트 영역을 구분할까?
→ 이를 가능하게 하는 것이 서브넷 마스크
서브넷 마스크(Subnet Mask)란?
클래스리스(Classless) 기반 IP 주소에서 네트워크 주소와 호스트 주소를 구분하기 위한 구분자
- 서브넷 마스크는 IPv4와 같은 형식이며, 2진수로 1로 표기된 부분을 네트워크 주소, 0으로 표기된 부분을 호스트 주소로 구분할 수 있음 (1과 0은 각각 연속되어야 함)
192.168.10.1 은 클래스 C이고 기본 서브넷 마스크는 255.255.255.0 임
즉, 클래스 C IP주소의 기본 서브넷 마스크는 CIDR 표기법으로 /24 가 됨
CIDR 표기 방식
- CIDR은 IP와 서브넷 마스크를 함께 표기하며, /(슬래시)로 이 둘을 구분함
- 192.168.10.1 의 경우 서브넷 마스크의 네트워크 주소, 1의 개수가 24개이므로 192.168.10.1/24 와 같이 표기함
4.2. 서브네팅
- 서브네팅(Subnetting)이란 IP 주소를 효율적으로 나누어 사용하기 위한 방법으로, 네트워크 성능을 보장하고 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업임
- 서브네팅을 하면 IP 할당 범위를 더 작은 단위로 할 수 있음
호스트 주소가 8비트에서 7비트가 되었으므로 최대 호스트가 254에서 127이 되었고, 네트워크는 분리되어 2개가 되었다. 이렇게 분리된 각각의 네트워크를 서브넷이라고 한다. 첫번째 네트워크의 범위는 192.168.10.0~127이 되고, 두번째 네트워크의 범위는 192.168.10.128~192.168.10.255가 된다.
- CIDR을 사용하면 단 한 줄만으로 네트워크 범위를 추측 또는 측정할 수 있게 된다.
- ex. 이 회사의 IP 범위는 192.168.10.1/25 입니다. 계산은 알아서 하세요~
→ 이게 바로 CIDR
5. DHCP
- Dynamic Host Configuration Protocol
- 호스트의 IP 주소 및 각종 TCP/IP 프로토콜의 기본 설정을 네트워크에 연결된 장치(클라이언트)에 자동으로 제공해주는 프로토콜
- 이 기술을 통해 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 자동으로 IP 주소를 할당할 수 있음
- 많은 라우터와 게이트웨이 장비에 DHCP 기능이 있으며, 이를 통해 대부분의 가정용 네트워크에서 IP 주소를 할당함
- 네트워크에 사용되는 IP 주소를 DHCP 서버가 중앙 집중식으로 관리하는 클라이언트/서버 모델을 사용함
5.1. DHCP의 장단점
5.1.1. 장점
- 신뢰성 높은 DHCP IP 주소 구성
- IP 자동 할당으로 인해 IP 충돌 방지
- 높은 이동성
- 사용자는 네트워크 범위 내에서 어디서든지 모바일 장치 이용 가능
- 효율적인 네트워크 관리
- 별도의 IP 할당 서버가 필요하지 않음
- IP 체계의 유연성
- PC의 수가 많거나 PC 자체 변동사항이 많아도 IP 설정이 자동으로 되기에 효율적인 사용 가능
- 최종 사용자에게 지장을 주지 않으면서 IP 주소 체계를 쉽게 변경 가능
5.1.2. 단점
- DHCP 서버에 의존하기에 서버가 다운되면 IP 할당이 제대로 이루어지지 않음
- 아무런 인증 과정을 거치지 않기에 사이버 공격에 취약함
6. NAT
- Network Address Translation
- 하나의 공인 IP를 여러 개의 사설 IP로 변환하는 기술
- 가정용 공유기가 대표적인 예
공인(public) IP
ISP(인터넷 서비스 공급자)가 제공하는 IP 주소로, 외부에 공개되어 있는 IP 주소
사설(private) IP
일반 가정이나 회사 등에 할당된 IP 주소로, IPv4의 주소 부족으로 인해 서브넷팅된 IP이기에 라우터(공유기)에 의해 로컬 네트워크상의 PC나 장치에 해당함
사설 IP 주소만으로 인터넷이 직접 연결할 수 없고, 라우터를 통해 1개의 공인 IP를 할당하고 라우터에 연결된 개인 PC는 사설 IP를 각각 할당 받아 인터넷에 접속할 수 있음
- NAT를 이용하면 내부 네트워크에서 사용하는 IP 주소와 외부에서 드러나는 IP 주소를 다르게 유지할 수 있기에 내부 네트워크에 대한 어느 정도의 보안이 가능함
- 하지만 NAT는 여러 명이 동시에 인터넷을 접속하게 되므로 실제로 접속하는 호스트 숫자에 따라서 접속 속도가 느려질 수 있다는 단점이 있음
참고자료
IP 주소(클래스, CIDR, 서브넷 마스크)
📌 IP 주소 OSI 7계층에서 주소를 가지고 있는 계층은 2계층(데이터 링크 계층)과 3계층(네트워크 계층) 입니다. 2계층의 경우 물리 주소인 MAC주소를 사용하고, 3계층은 논리 주소인 IP 주소를 사용
zzang9ha.tistory.com
[Network] IP주소 클래스(A,B,C class)란?
*선행지식 2018/11/10 - [전공지식/Network] - [Network] IP주소란? (IP클래스를 이해하기 전 IP주소에 대해서 먼저 아셔야 이해하기 쉽습니다.) 1) IP주소의 클래스란? 지난시간 IP주소에 대해 배웠는데 잠시
limkydev.tistory.com
DHCP란? DHCP 프로토콜의 원리
Dynamic Host Configuration Protocol(동적 호스트 구성 프로토콜)의 약자호스트의 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동으로 제공해주는 프로토콜네트워크 안의 컴퓨터에 자
velog.io
'도서' 카테고리의 다른 글
[면접을 위한 CS 전공지식 노트] 2.2. TCP와 UDP (0) | 2023.08.12 |
---|---|
[면접을 위한 CS 전공지식 노트] 2.2. TCP/IP 4계층 모델 (0) | 2023.08.08 |
[면접을 위한 CS 전공지식 노트] 1.1. 디자인 패턴 (0) | 2023.08.01 |