Network Layer - TCP/IP Layer 2
TCP/IP 모델의 2계층으로 OSI 7계층의 네트워크 계층(Network Layer)으로, 물리적 연결을 넘어 최종 목적지까지 데이터를 안전하고 빠르게 전달하는 것이 주 목적이다.
| 계층 | 목적 |
|---|---|
| 1계층 | 인접한 장치 간의 통신 (Hop-by-Hop) |
| 2계층 | 최종 목적지까지의 경로를 찾고 패킷을 전달하는 종단 간 통신 (End-to-End) |
- 핵심 역할: 논리적 주소(IP) 지정, 라우팅(Routing), 패킷 전달(Forwarding)
- 전송 단위: 패킷(Packet) 또는 데이터그램(Datagram)
- 주요 프로토콜: IP(IPv4/IPv6), ARP, ICMP, IGMP, 라우팅 프로토콜(OSPF, BGP 등)
IP(Internet Protocol) 개요
섹션 제목: “IP(Internet Protocol) 개요”인터넷상에서 데이터를 주고받기 위한 핵심 규약으로, 패킷 교환 방식을 사용하여 데이터를 전송하며, 비연결형(Connectionless)이자 비신뢰성(Unreliable) 특징을 가진다.
MAC 주소와 IP 주소의 공존 이유
섹션 제목: “MAC 주소와 IP 주소의 공존 이유”모든 네트워크 장비는 고유한 MAC 주소를 가지지만, 물리적 주소만으로는 거대한 네트워크에서 특정 장비의 위치를 파악하기 어렵다.
| 구분 | MAC 주소 | IP 주소 |
|---|---|---|
| 정의 | 네트워크 장비에 할당된 고유한 물리적 주소 | 네트워크에 연결된 컴퓨터를 식별하는 논리적 주소 |
| 할당 주체 | 제조사가 하드웨어에 직접 할당 (Burn-in) | 네트워크 관리자 또는 ISP가 할당 |
| 변경 가능 여부 | 일반적으로 변경 불가능 | 변경 가능 (유동 IP 등) |
| 길이 | 48비트 (6바이트) | 일반적으로 32비트 (4바이트) |
IP의 한계와 보완
섹션 제목: “IP의 한계와 보완”IP는 신속한 전송을 목적으로 하기에 목적지 도달, 순서, 에러 복구를 보장하지 않는다. 이를 상위 계층과 보조 프로토콜로 해결한다.
- 비신뢰성 보완: 상위 계층인 TCP가 패킷의 순서 재조립, 재전송 요청 등을 수행하여 신뢰성 보장
- 에러 통지 보완: ICMP 프로토콜을 사용하여 전송 실패 원인(목적지 도달 불가, 시간 초과 등)을 송신측에 통보
IP 주소 체계(IPv4 vs IPv6)
섹션 제목: “IP 주소 체계(IPv4 vs IPv6)”IPv4 주소 고갈 문제로 IPv6가 등장했으나, 현재는 NAT 기술 등으로 인해 두 버전이 공존하는 상태다.
| 구분 | IPv4 | IPv6 |
|---|---|---|
| 주소 길이 | 32비트 (4바이트) | 128비트 (16바이트) |
| 표기 방식 | 10진수 (192.168.0.1) | 16진수 (2001:0db8::ff00…) |
| 주소 개수 | 약 43억 개 | 약 3.4 x 10^38 개 (사실상 무한) |
| 헤더 구조 | 가변 길이 (옵션 필드 존재) | 고정 길이 (확장 헤더 사용) |
| 보안 기능 | IPSec 별도 설치 필요 | IPSec 프로토콜 자체 내장 |
IPv4 헤더 구조
섹션 제목: “IPv4 헤더 구조”- 단편화 관련 정보
- 식별자: 단편화된 패킷 재조립 시 사용하는 고유값
- 플래그: 단편화 여부 및 추가 조각 유무 표시
- 단편화 오프셋: 원본 데이터 내에서의 위치 정보
- 제어 및 주소 정보
- TTL(Time To Live): 라우터 통과 시마다 1씩 감소, 0 도달 시 패킷 폐기 및 ICMP 전송
- 프로토콜: 상위 계층 프로토콜 명시 (TCP: 6, UDP: 17 등)
- 헤더 체크섬: 헤더 오류 검출
- 송신지/목적지 IP 주소
IPv6 헤더 구조
섹션 제목: “IPv6 헤더 구조”- 페이로드 길이: 헤더를 제외한 데이터 길이
- 다음 헤더: 확장 헤더를 가리키며, 단편화/인증/암호화 등 필요 기능 추가 시 사용
- 홉 제한: IPv4의 TTL과 동일한 역할
- 송신지/목적지 IP 주소
단편화(Fragmentation)
섹션 제목: “단편화(Fragmentation)”네트워크 인터페이스마다 전송 가능한 최대 크기(MTU, 보통 1500byte)가 다른데, 라우터가 자신의 MTU보다 큰 패킷을 처리해야 할 때 이를 분할하여 전송하는 것을 단편화라 한다.
- 문제점: 분할된 패킷 중 하나만 손실되어도 전체 패킷을 재전송해야 하므로 성능 저하 유발
- 해결책: TCP 계층에서
MSS(Maximum Segment Size)조정 또는Path MTU Discovery기술을 사용하여 단편화 방지
ARP(Address Resolution Protocol)
섹션 제목: “ARP(Address Resolution Protocol)”논리적 주소(IP)를 통해 해당 장비의 물리적 주소(MAC)를 알아내는 프로토콜이다.
sequenceDiagram participant Sender as 송신자 (192.168.0.10) participant Network as 네트워크 (Broadcast) participant Receiver as 수신자 (192.168.0.20) Sender ->> Network: 1. ARP Request (Who has 192.168.0.20?) Note right of Sender: Broadcast (FF:FF:FF:FF:FF:FF)로 전송 Network ->> Receiver: ARP Request 전달 Receiver ->> Sender: 2. ARP Reply (192.168.0.20 is at AA:BB...) Note left of Receiver: Unicast로 응답 Sender ->> Sender: 3. ARP Cache Table 갱신- ARP 요청: IP 주소를 담아 브로드캐스트로 네트워크 전체에 질의
- ARP 응답: 해당 IP를 가진 호스트가 자신의 MAC 주소를 유니캐스트로 응답
- ARP 캐시 갱신: IP-MAC 매핑 정보를 테이블에 저장하여 재사용 (일정 시간 후 만료)
동일 네트워크 내의 호스트의 MAC 주소를 알아내기 위한 프로토콜이기 때문에, 다른 네트워크에 있는 호스트의 MAC 주소를 알아내기 위해서는 다른 프로토콜도 사용하여 통신하게 된다.
IP 주소의 구조와 서브넷팅
섹션 제목: “IP 주소의 구조와 서브넷팅”IP 주소는 네트워크를 식별하는 네트워크 주소와 특정 기기를 식별하는 호스트 주소로 구성된다.
클래스풀(Classful) 주소 체계
섹션 제목: “클래스풀(Classful) 주소 체계”과거에 사용되던 방식으로, 네트워크 크기에 따라 A, B, C 클래스로 나누어 고정된 길이를 사용했다.
- A Class: 대규모 네트워크 (네트워크 8비트 / 호스트 24비트)
- B Class: 중규모 네트워크 (네트워크 16비트 / 호스트 16비트)
- C Class: 소규모 네트워크 (네트워크 24비트 / 호스트 8비트)
- 단점: 주소 낭비가 심함
클래스리스(Classless) 주소 체계와 서브넷 마스크
섹션 제목: “클래스리스(Classless) 주소 체계와 서브넷 마스크”주소 낭비를 줄이기 위해 등장한 현대적 방식이다. 서브넷 마스크를 이용해 네트워크 ID와 호스트 ID의 경계를 유동적으로 구분한다.
- 서브넷 마스크: IP 주소와 AND 연산을 수행하여 네트워크 주소를 추출하는 비트열
- CIDR 표기법:
192.168.100.103/30과 같이 프리픽스 길이로 표기 - 계산 예시 (서브넷 마스크가 1인 비트가 네트워크 부분)
- IP:
11000000.10101000.00001100.00101101 - Mask:
11111111.11111111.11111111.00000000 - Network:
192.168.12.0/ Host:45
- IP:
IP 주소 운용 및 할당
섹션 제목: “IP 주소 운용 및 할당”공인 IP와 사설 IP
섹션 제목: “공인 IP와 사설 IP”- 공인 IP (Public IP): 인터넷 상에서 유일하게 식별되는 주소
- 사설 IP (Private IP): 내부망에서만 사용되는 주소. 인터넷 직접 접속 불가
- 대역:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
- 대역:
NAT (Network Address Translation)
섹션 제목: “NAT (Network Address Translation)”사설 IP를 공인 IP로 변환하여 인터넷 통신을 가능하게 하는 기술이다. 주로 라우터(공유기)가 수행한다.
- 기능: IP 부족 문제 해결 및 내부망 보안 강화
- 포트 포워딩: 하나의 공인 IP를 여러 사설 IP가 공유할 때, 포트 번호로 통신을 구분
DHCP (Dynamic Host Configuration Protocol)
섹션 제목: “DHCP (Dynamic Host Configuration Protocol)”네트워크 접속 시 호스트에게 IP 주소, 서브넷 마스크, 게이트웨이 등의 정보를 자동으로 할당해주는 프로토콜이다.
- 동작 과정 (DORA)
- Discover: 호스트가 DHCP 서버 탐색 (Broadcast)
- Offer: 서버가 할당 가능한 IP 제안
- Request: 호스트가 해당 IP 사용 요청
- Ack: 서버가 최종 승인 및 임대 확정
라우팅 (Routing)
섹션 제목: “라우팅 (Routing)”패킷을 목적지까지 보낼 최적의 경로를 결정하고 전송하는 과정이다.
- 홉(Hop): 라우터와 라우터 사이의 구간
- 라우팅 테이블: 경로 판단의 기준이 되는 정보 저장소
- 목적지 주소 및 서브넷 마스크
- 게이트웨이: 다음으로 거쳐야 할 라우터 IP
- 인터페이스: 패킷을 내보낼 포트
- 메트릭: 경로 비용 (낮을수록 우선순위 높음)
루프백 (Loopback)
섹션 제목: “루프백 (Loopback)”127.0.0.1로 예약된 IP 주소로, 자기 자신(Localhost)을 가리킨다. 외부 네트워크를 거치지 않고 운영체제 내부에서 통신이 이루어지며, 주로 서버 상태 점검이나 내부 프로세스 간 통신에 사용된다.
flowchart TD subgraph AL["Application Layer"] PA["Process A<br/>(Client)"] PB["Process B<br/>(Server)"] end subgraph TL["Transport Layer"] T[Transport Layer] end subgraph IL["Internet Layer"] I["Internet Layer<br/>127.0.0.1 요청이므로<br/>하위 레이어로 패킷이 가지 않음"] end subgraph NL["Network Interface Layer"] N[Network Interface Layer] end
PA -->|" 1. 127.0.0.1:B 에 요청 "| T T --> I T -->|" 3. 해당 프로세스를 찾아 요청 "| PB