////
Search

3. 네트워크 계층 - IP

물리 & 데이터 링크 계층에 속한 기술 : 대부분 LAN을 위한 기술
LAN을 넘어 다른 네트워크와 통신을 주고받으려면, 네트워크 계층 이상의 기술이 필요
가장 핵심 프로토콜 : IP(Internet Protocol)

IP의 목적과 특징

IP의 목적 : 주소 지정, 단편화
IP의 특징 : 비신뢰성 통신, 비연결형 통신

주소 지정과 단편화

주소 지정(IP 목적 1)

IP주소를 통해 이뤄짐(IP 패킷 헤더를 통해 확인 가능)
IP 패킷 헤더 내 송신지 IP 주소, 수신지 IP 주소 필드 존재
하나의 IP 주소는 총 4바이트(32비트) 크기로 구성, 숫자당 8비트로 표현 → 0 ~ 255 범위의 10진수 4개로 표기
옥텟 : 점으로 구분된 하나의 10진수
패킷을 올바르게 전송하기 위해서는 MAC 주소 & IP 주소 모두 필요
패킷 송수신 과정에서 IP 주소가 우선적으로 활용됨
라우터(Router) : IP 주소를 바탕으로 목적지까지 IP 패킷을 전달하는 네트워크 장비
라우팅 : IP 패킷을 전달할 최적의 경로를 결정하고 해당 경로로 패킷을 내보내는 과정
즉, 라우터는 IP 주소를 기반으로 패킷의 최적 경로를 결정해 목적지까지 전달(라우팅)하는 네트워크 장비

단편화(IP 목적 2)

MTU(Maximum Transmission Unit) : 최대 전송 단위
전송하고자 하는 IP 패킷(IP 헤더 및 페이로드)의 크기가 MTU라는 단위보다 클 경우, 패킷을 MTU 이하의 여러 패킷으로 쪼개서 전송하고, 쪼개서 전송된 패킷들은 수신지에서 재조합됨
1500바이트 : 일반적인 MTU 크기
프레임을 통해 주고받을 수 있는 최대 페이로드 크기 (IP 패킷의 헤더 및 페이로드는 프레임의 페이로드가 되기 때문)
IP 패킷 헤더에서 단편화와 관련된 필드
1.
식별자(Identifier) : 같은 정보에서 쪼개진 패킷들은 같은 식별자를 공유 → 특정 패킷이 어떤 데이터에서 쪼개진 패킷인지 식별하기 위한 필드
2.
플래그(flag) : 3비트 구성 필드
a.
첫번째 비트 : 0으로 고정(오늘날 사용X)
b.
DF(Don’t Fragment) : IP 단편화를 수행하지 말라를 표시하는 비트
c.
MF(More Fragment) : 단편화된 패킷이 더 있다를 표시하는 비트
3.
단편화 오프셋(fragment offset) : 특정 패킷이 초기 데이터에서 얼마나 떨어져 있는지가 명시된 필드. 단편화되어 전송되는 패킷을 목적지에서 재조합하기 위해 패킷의 올바른 순서를 나타내는 데 사용

신뢰할 수 없는 통신과 비연결형 통신

신뢰할 수 없는 프로토콜(비신뢰성 통신)

패킷이 수신지까지 제대로 전송되었다고 보장하지 않는 프로토콜
패킷이 유실되거나 목적지에 순서대로 전송되지 않더라도 이에 대해 조치를 취하지 않음
최선형 전달이라고도 함

비연결형 프로토콜(비연결형 통신)

패킷을 주고받기 전에 사전 연결 과정을 거치지 않는 프로토콜
상대 호스트의 수신 가능 여부는 고려하지 않고, 수신지를 향해 그저 패킷을 전송

참고) 경로 MTU 발견(IP 단편화 피하기)

IP 주소의 구조

IP 주소 : 주소 지정의 수단
네트워크 계층 : IP주소를 기반으로 LAN 간의 통신을 가능하게 함.
하나의 IP 주소는 10진수 4개(32bit)로 표기되며 크게 네트워크 주소와 호스트 주소로 이뤄짐
네트워크 주소(네트워크 ID, 네트워크 식별자) : 호스트가 속한 네트워크를 특정하기 위해 사용
호스트 주소(호스트 ID, 호스트 식별자) : 네트워크에 속한 호스트를 특정하기 위해 사용
중요한 점
하나의 IP 주소에서 네트워크 주소를 표현하는 크기와 호스트를 표현하는 크기가 유동적일 수 있음
EX : 16bit(네트워크 주소 크기) + 16bit(호스트 주소 크기), 8bit(네트워크 주소 크기) + 24bit(호스트 주소 크기), 24bit(네트워크 주소 크기) + 8bit(호스트 주소 크기)

클래스풀 주소 체계

클래스를 바탕으로 IP 주소를 관리하는 주소 체계
IP 주소에서 네트워크 주소와 호스트 주소를 구분하는 범위가 유동적 → 상황에 따라 네트워크 주소 및 호스트 주소의 크기를 적당하게 설정 필요
호스트 주소 공간을 너무 크게 할당 → 호스트가 할당되지 않은 다수의 IP 주소가 낭비
호스트 주소 공간을 너무 작게 할당 → 호스트가 사용할 IP 주소가 부족
클래스 : 네트워크 크기에 따라 유형별로 IP 주소를 분류하는 기준
어떤 클래스에 속한 IP 주소인지를 알면, IP 주소에서 네트워크 부분과 호스트 부분이 어느 정도의 크기인지 파악 가능
A,B,C,D,E까지 5개 종류의 클래스 존재
A,B,C 클래스가 네트워크 크기별로 IP 주소를 분류하는 데 실질적으로 사용되는 클래스
A 클래스
네트워크 주소 : 0으로 시작해 1옥텟으로 구성
호스트 주소 : 3옥텟으로 구성
IP 주소 표현 가능 범위 : 0.0.0.0 ~ 127.255.255.255
B 클래스
네트워크 주소 : 비트 10으로 시작해 2옥텟으로 구성
호스트 주소 : 2옥텟으로 구성
IP 주소 표현 가능 범위 : 128.0.0.0 ~ 191.255.255.255
C 클래스
네트워크 주소 : 비트 110으로 시작해 3옥텟으로 구성
호스트 주소 : 1옥텟으로 구성
IP 주소 표현 가능 범위 : 192.0.0.0 ~ 223.255.255.255
참고) 네트워크/브로드캐스트 주소와 예약 주소

클래스리스 주소 체계와 서브넷 마스크

클래스리스 주소 체계 : 클래스풀 주소 체계보다 더 정교하고 유동적으로 네트워크 영역을 나눌 수단 (클래스를 이용하지 않고 네트워크와 호스트를 구분하는 방식)
서브넷 마스크 : 클래스를 이용하지 않고 IP 주소 내 네트워크 주소와 호스트 주소를 구분하는 방법
IP 주소상에서 네트워크 주소를 1로 표기하고, 호스트 주소를 0으로 표기한 비트열
서브넷을 구분(마스크)하는 비트열
서브네트워크(= 서브넷) : IP 주소에서 네트워크 주소로 구분할 수 있는 네트워크의 부분집합
서브네팅 : 서브넷 마스크를 이용해 원하는 크기로 클래스를 더 잘게 쪼개어 사용하는 것
클래스풀 주소 체계에서의 A,B,C 클래스의 기본 서브넷 마스크를 표현한다면?
A 클래스 : 255.0.0.0 (11111111.00000000.00000000.00000000)
B 클래스 : 255.255.0.0 (11111111.11111111.00000000.00000000)
C 클래스 : 255.255.255.0 (11111111.11111111.11111111.00000000)
서브넷 마스크와 IP 주소 간에 비트 AND 연산 수행을 통해 IP 주소 내의 네트워크 주소를 파악 가능
EX : 192.168.200.102(IP 주소)와 255.255.255.0(서브넷 마스크)의 비트 AND 연산
네트워크 주소 : 192.168.200.0
참고) CIDR 표기 - 서브넷 마스크 표기법

공인 IP 주소와 사설 IP 주소

호스트 IP 주소는 네트워크 설정이나 명령어를 통해 확인할 수도, 온라인 검색을 통해 확인할 수도 있음
IP 주소는 두 종류가 존재 : 공인 IP 주소, 사설 IP 주소
터미널에서 ifconfig 명령어 입력시 : 공유기의 DHCP서버가 내 컴퓨터에 할당해준 사설 IP 주소
인터넷에서 검색시 : 공유기의 공인 IP 주소
공인 IP 주소
전 세계에서 고유한 IP 주소(인터넷을 비롯한 네트워크 간 통신에서 사용되는 IP 주소)
ISP나 공인 IP 주소 할당 기관을 통해 할당받을 수 있음
사설 IP 주소
사설 네트워크에서 사용하기 위한 IP 주소
사설 네트워크 : 외부 네트워크에 공개되지 않은 네트워크
일반적으로 라우터(공유기)를 통해 할당되기 때문에, 공유기(라우터)를 중심으로 구성된 LAN 대부분은 사설 네트워크에 해당
IP 주소 중에서 사설 IP 주소로 사용하도록 예약된 IP 주소 공간 존재 :
10.0.0.0/8 (10.0.0.0 ~ 10.255.255.255)
172.16.0.0/12 (172.16.0.0 ~ 172.31.255.255)
192.168.0.0/16 (192.168.0.0 ~ 192.168.255.255)
사설 IP 주소는 해당 호스트가 속한 사설 네트워크 상에서만 유효한 주소 → 얼마든지 다른 네트워크상의 사설 IP 주소와 중복될 수 있음

IP 주소의 할당

호스트에 IP 주소를 할당하는 방법

방법 1) 정적 할당

수작업
정적 IP 주소 : 정적 할당을 통해 할당된 IP 주소
IP 주소를 수동으로 설정하는 설정 or 명령어 존재
정적 IP 주소를 부여하고자 하는 IP 주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS 주소 등 필요 (OS에 관계없이 대체적으로 필요한 값이 유사)
게이트웨이 : 서로 다른 네트워크를 연결하는 하드웨어적/소프트웨어적 수단
기본 게이트웨이 : 호스트가 속한 네트워크의 외부로 나가기 위한 첫 기본 경로 (보통 라우터(공유기)의 주소를 의미하는 경우가 대다수)
DNS 주소 : 호스트가 도메인 네임을 토대로 IP 주소를 알아내기 위해 질의하는 서버의 주소
도메인 네임 : IP 주소에 대응되는 기억할 수 있는 문자열
도메인 네임으로 호스트를 식별
호스트끼리 패킷을 주고받기 위해 IP 주소를 사용하지만, 통신을 주고받는 모든 호스트의 IP 주소를 기억하기는 어렵기 때문에 도메인 네임 사용
네임서버(DNS 서버) : 호스트가 IP 주소를 알아내기 위해 도메인 네임을 토대로 질의하는 서버 (<도메인 네임, IP 주소> 쌍을 저장)

방법 2) 동적 할당

DHCP
프로토콜을 통해 자동으로 IP 주소를 부여하는 방식
가장 흔히 사용되는 프로토콜 : DHCP(Dynamic Host Configuration Protocol)
일상적으로 동적 할당을 많이 사용하므로 DHCP 또한 빈번하게 사용
DHCP
호스트 : DHCP 서버와 메시지를 주고받으며 동적 IP 주소를 할당받음
서버 : 호스트에 할당 가능한 IP 주소 목록을 관리하다가, IP 주소 할당 요청을 받았을 때 IP 주소를 할당해주는 호스트
일반적으로 라우터(공유기)가 DHCP 서버 역할 수행
동적 할당 & 동적 IP 주소 관련 기억해야할 점 2가지
1.
동적 IP 주소에는 사용 가능한 기간(임대 기간)이 정해져 있음
IP 주소의 임대라고도 표현
임대 갱신(임대 기간을 연장)을 자동으로 두 차례 수행하고, 두 번의 임대 갱신이 모두 실패하면 IP 주소는 DHCP 서버로 반납
2.
동적 IP 주소는 할당받을 때마다 다른 주소를 받을 수 있음
사용 기간이 끝난 IP 주소는 DHCP 서버로 반납되고, 새롭게 IP 주소를 할당받는 경우 다른 IP 주소를 할당받을 수 있음

IP 전송 특징의 보완 : ICMP

IP가 신뢰할 수 없는 비연결형 프로토콜인 주된 이유 : 성능
신뢰성이 높은 송수신 → 유실되거나 순서가 어긋난 패킷 등이 있는지 점검 필요
연결형 송수신 → 패킷을 주고받는 호스트 간 연결 수립 후 연결 관리 필요
즉, 신뢰성과 연결은 성능과 배치되는 작업이므로, IP의 2가지 특징은 반드시 극복해야할 단점은 X
그럼에도 IP의 신뢰할 수 없는 비연결형 통신이라는 특징을 보완하려면, 2가지 방법 존재
1.
상위 계층의 프로토콜을 이용 : TCP
2.
네트워크 계층의 프로토콜로 ICMP 이용
ICMP(Internet Control Message Protocol)
IP 패킷의 전송 과정에 대한 피드백 메시지(ICMP 메시지)를 얻기 위해 사용하는 프로토콜
ICMP 메시지를 통해 패킷이 상대방에게 어떻게 전송되었는지를 알려줄 수 있어 IP 전송 결과를 엿볼 수 있음
ICMP 메시지에는 2가지 유형 존재
1.
전송 과정에서 발생한 오류 보고
2.
네트워크에 대한 진단 정보(네트워크상의 정보 제공)
참고) TTL &

IP 주소와 MAC 주소의 대응 : ARP

패킷 송수신 과정에 MAC 주소와 IP 주소를 함께 사용하지만 MAC 주소보다 IP 주소를 우선적으로 활용
ARP(Address Resolution Protocol)
상대 호스트의 IP 주소는 알고 MAC 주소는 모르는 경우에 사용하는 프로토콜
IP주소와 MAC 주소를 함께 활용하는 통신 과정에서 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아내는 프로토콜
MAC 주소와 IP 주소를 모두 알아야 올바르게 패킷을 송신할 수 있기에 ARP를 통해 MAC주소를 찾아냄
ARP의 동작과정
ARP 요청 메시지, ARP 응답 메시지를 통해 IP 주소로부터 MAC 주소를 알아냄
1.
ARP 요청 메시지에는 알고 싶은 MAC 주소에 대응되는 IP 주소가 포함되어 있고, ARP 요청은 브로드캐스트 메시지이므로 네트워크 내 모든 호스트가 요청을 수신함
2.
수신한 호스트들이 ARP 요청 메시지에 포함된 IP 주소를 확인해 자신과 관련 없는 IP 주소일 경우에는 무시하고, 자신의 IP 주소일 경우에는 ARP 응답 메시지를 전송(ARP 응답 메시지에는 응답 메시지를 보내는 호스트의 MAC 주소가 포함됨)
3.
호스트 입장에서는 ARP 요청/응답 메시지를 주고받으며 얻은 <IP 주소, MAC 주소> 쌍을 기억해두는 게 좋으므로 ARP를 활용하는 호스트는 ARP 테이블이라는 정보를 유지
ARP 테이블 항목은 일정 시간이 지나면 삭제되고 임의로 삭제도 가능
참고 자료