Network Layer: Internet
Network Layer는 인터넷에서 host와 router의 핵심 기능을 담당한다.
- 주요 기능에는 Path-selection algorithms(경로 선택 알고리즘), IP protocol(IP 프로토콜), ICMP protocol(ICMP 프로토콜)이 있다.
Path-selection algorithms
- routing protocols(OSPF, BGP), SDN controller 등에 의해 구현된다.
- forwarding table(포워딩 테이블)을 사용해 데이터가 목적지까지 가는 경로를 결정한다.
IP protocol
- datagram format(데이터그램 포맷), addressing(주소 지정), packet handling conventions(패킷 처리 규칙)을 정의한다.
ICMP protocol
- error reporting(오류 보고), router signaling(라우터 신호 전달) 기능을 담당한다.
IP Datagram format
IP Datagram은 인터넷에서 데이터가 이동할 때 사용하는 기본 단위이다.
- 32비트 단위로 구성되며, 여러 필드로 나뉜다.
주요 필드 설명
- version: IP protocol version number(프로토콜 버전)
- header length: header length(헤더 길이, 바이트 단위)
- type of service: 서비스 유형, diffserv/ECN 등
- length: total datagram length(전체 데이터그램 길이, 바이트 단위)
- 16-bit identifier, flags, fragment offset: fragmentation/reassembly(분할/재조립) 관련
- TTL(time to live): 각 라우터에서 감소, 패킷 생존 시간
- upper layer: upper layer protocol(TCP, UDP 등)
- header checksum: 헤더 오류 검출
- source IP address: 32비트 소스 IP 주소
- destination IP address: 32비트 목적지 IP 주소
- options: 옵션(예: 타임스탬프, 경로 기록 등)
- payload data: 실제 데이터(가변 길이, 주로 TCP/UDP segment)
오버헤드
- TCP 20 bytes + IP 20 bytes = 40 bytes + application layer overhead
IP addressing: introduction
IP address
- 32-bit identifier(식별자)로, 각 host 또는 router의 interface(인터페이스)에 할당된다.
interface
- host/router와 physical link(물리적 링크) 사이의 연결을 의미한다.
- router는 보통 여러 개의 인터페이스를 가진다.
- host는 보통 1~2개 인터페이스(예: wired Ethernet, wireless 802.11)를 가진다.
dotted-decimal IP address notation
- 예: 223.1.1.1
- 32비트 이진수로 표현되며, 8비트씩 끊어서 10진수로 표기한다.
- 예시: 223.1.1.1 = 11011111 00000001 00000001 00000001
Subnet(서브넷)
- 서브넷(subnet)이란, 서로 직접(라우터를 거치지 않고) 물리적으로 도달할 수 있는 device interface들의 집합이다.
IP 주소의 구조
- subnet part(서브넷 부분): 같은 서브넷에 속한 device들은 IP 주소의 high-order bits(상위 비트)가 동일하다.
- host part(호스트 부분): 나머지 low-order bits(하위 비트)는 개별 device를 식별한다.
Subnet 정의 방법
서브넷을 정의하는 절차는 다음과 같다.
- 각 interface를 그 host나 router에서 분리(detach)하여, isolated network(고립된 네트워크) "island"를 만든다.
- 이렇게 분리된 각 네트워크를 subnet(서브넷)이라고 부른다.
서브넷 마스크(subnet mask)
- 예시: /24 (high-order 24 bits가 subnet part)
- 예시 주소: subnet 223.1.1.0/24, subnet 223.1.2.0/24, subnet 223.1.3.0/24
Subnet 예시와 주소
네트워크 내 서브넷의 위치와 /24 서브넷 주소는 다음과 같다.
Subnet Address | 포함하는 IP 주소 범위 예시 |
223.1.1.0/24 | 223.1.1.1, 223.1.1.2 등 |
223.1.2.0/24 | 223.1.2.1, 223.1.2.9 등 |
223.1.3.0/24 | 223.1.3.1, 223.1.3.2 등 |
223.1.7.0/24 | 223.1.7.0, 223.1.7.1 등 |
223.1.8.0/24 | 223.1.8.1, 223.1.8.2 등 |
223.1.9.0/24 | 223.1.9.1, 223.1.9.2 등 |
각 서브넷은 해당 범위 내의 IP 주소를 가진 device들이 라우터를 거치지 않고 직접 통신할 수 있는 네트워크 구간을 의미한다.
- subnet(서브넷)은 라우터 없이 직접 연결된 device interface들의 집합이다.
- IP 주소는 subnet part(상위 비트)와 host part(하위 비트)로 구성된다.
- /24와 같은 subnet mask는 상위 24비트가 서브넷을 식별함을 의미한다.
IP Addressing: CIDR
- CIDR(Classless InterDomain Routing)는 IP 주소의 subnet part(서브넷 부분) 길이를 자유롭게 지정할 수 있는 방식이다.
- 주소 표기 형식: a.b.c.d/x 여기서 x는 subnet part의 비트 수를 의미한다.
- 예시: 200.23.16.0/23 이 경우, 앞의 23비트가 subnet part이고, 나머지 비트가 host part이다.
- 이진수로 보면, subnet part와 host part가 명확히 구분된다.
IP 주소 할당 방식
IP 주소를 얻는 방법에는 두 가지 주요 질문이 있다.
- host(호스트)가 자신의 네트워크 내에서 어떻게 IP 주소(host part)를 할당받는가?
- network(네트워크)가 어떻게 자신의 IP 주소(network part)를 할당받는가?
host의 IP 주소 할당 방식
- 수동 할당: 시스템 관리자가 설정 파일(예: UNIX의 /etc/rc.config)에 직접 입력
- 동적 할당: DHCP(Dynamic Host Configuration Protocol)를 통해 서버로부터 동적으로 할당받음 (plug-and-play 방식)
DHCP(Dynamic Host Configuration Protocol)
DHCP의 목적
- host가 네트워크에 접속(join)할 때, 네트워크 서버로부터 동적으로 IP 주소를 할당받도록 한다.
- 주소 임대(lease) 갱신 가능
- 주소 재사용 가능(연결되어 있는 동안만 주소를 보유)
- 네트워크에 들어오고 나가는 모바일 사용자 지원
DHCP 동작 개요
- host가 DHCP discover 메시지를 브로드캐스트(옵션)
- DHCP 서버가 DHCP offer 메시지로 응답(옵션)
- host가 DHCP request 메시지로 IP 주소 요청
- DHCP 서버가 DHCP ack 메시지로 주소 할당
DHCP Client-Server 시나리오
- 일반적으로 DHCP 서버는 라우터와 함께 위치하며, 해당 라우터에 연결된 모든 서브넷에 서비스를 제공한다.
- 네트워크에 새로 들어온 DHCP client는 이 네트워크에서 사용할 IP 주소가 필요하다.
DHCP 메시지 교환 과정
- DHCP discover
- 클라이언트: "Broadcast: is there a DHCP server out there?"
- DHCP offer
- 서버: "Broadcast: I'm a DHCP server! Here's an IP address you can use"
- DHCP request
- 클라이언트: "Broadcast: OK. I would like to use this IP address!"
- DHCP ack
- 서버: "Broadcast: OK. You've got that IP address!"
만약 클라이언트가 이전에 할당받은 네트워크 주소를 기억하고 있다면, discover/offer 단계를 생략하고 바로 request/ack만 사용할 수 있다.
DHCP: more than IP addresses
- DHCP(Dynamic Host Configuration Protocol)는 단순히 IP address만 할당하는 것이 아니라, 다양한 네트워크 정보를 함께 전달할 수 있다.
- first-hop router(클라이언트가 사용할 첫 번째 라우터)의 주소를 반환할 수 있다.
- DNS server(DNS 서버)의 이름과 IP 주소를 함께 제공할 수 있다.
- network mask(네트워크 마스크, 즉 주소에서 네트워크 부분과 호스트 부분을 구분하는 정보)도 함께 전달한다.
DHCP: example
1. 새로운 host 추가시 DHCP request 전송
- 노트북 등 클라이언트가 네트워크에 연결될 때, DHCP를 사용해 IP address, first-hop router의 주소, DNS server의 주소 등을 할당받는다.
- DHCP REQUEST 메시지는 UDP에 캡슐화되고, 다시 IP, Ethernet에 캡슐화되어 LAN에 브로드캐스트된다(목적지 MAC: FFFFFFFFFFFF).
2. DHCP 서버가 수신 후 de-multiplex
- 이 프레임은 DHCP 서버가 내장된 라우터에서 수신된다.
- Ethernet 프레임이 해체되고, IP, UDP, DHCP 순서로 각각 de-multiplexing된다.
3. DHCP 서버가 ACK 메세지를 클라이언트로 전송한다.
- DHCP 서버는 DHCP ACK 메시지를 생성하여, 클라이언트의 IP address, first-hop router의 IP address, DNS server의 이름과 IP address를 포함시킨다.
- 이 DHCP 서버 응답은 캡슐화되어 클라이언트로 전달되고, 클라이언트에서는 DHCP 계층까지 de-multiplexing된다.
- 이제 클라이언트는 자신의 IP address, DNS server의 이름과 IP address, first-hop router의 IP address를 모두 알게 된다.
IP addresses: how to get one?
Q: network(네트워크)는 어떻게 subnet part(서브넷 부분)의 IP address를 할당받는가?
A: 상위 ISP(Internet Service Provider)로부터 주소 공간의 일부를 할당받는다.
- 예시: ISP가 200.23.16.0/20 주소 블록을 가지고 있다면, ISP는 이를 여러 개의 작은 블록으로 나누어(예: 8개) 여러 조직에 할당할 수 있다.
- 각 조직은 할당받은 주소 블록 내에서 자체적으로 서브넷을 나누어 사용할 수 있다.
Hierarchical Addressing: Route Aggregation
- Hierarchical addressing(계층적 주소 지정)은 route aggregation(경로 집약)을 가능하게 하여, 라우팅 정보의 효율적 광고를 돕는다.
- 여러 조직(Organization 0~7)이 각각 /23 주소 블록(예: 200.23.16.0/23, 200.23.18.0/23 등)을 할당받는다.
- 상위 ISP인 Fly-By-Night-ISP는 이 주소 블록들을 하나로 묶어(aggregation) "200.23.16.0/20으로 시작하는 모든 패킷을 나에게 보내라"는 식으로 인터넷에 광고한다.
- 또 다른 ISP(ISPs-R-Us)는 자신이 보유한 199.31.0.0/16 주소 블록을 광고한다.
- 이 방식은 라우팅 테이블의 크기를 줄이고, 관리 효율성을 높인다.
Hierarchical Addressing: More Specific Routes
조직이 ISP를 변경할 때, 더 구체적인 경로(more specific route)가 필요하다.
- 예를 들어, Organization 1이 Fly-By-Night-ISP에서 ISPs-R-Us로 이동하면, ISPs-R-Us는 200.23.18.0/23에 대한 더 구체적인 경로를 인터넷에 광고한다.
- 이제 ISPs-R-Us는 "내가 199.31.0.0/16뿐 아니라 200.23.18.0/23도 직접 관리한다"고 광고한다.
- 인터넷 라우터들은 200.23.18.0/23로 향하는 패킷을 ISPs-R-Us로 라우팅한다.
- 이처럼 계층적 주소 지정은 집약(aggregation)과 예외(구체적 경로 광고)를 모두 지원한다.
IP Addressing: Last Words
Q: ISP는 어떻게 주소 블록을 할당받는가?
- ICANN(Internet Corporation for Assigned Names and Numbers)이 5개의 regional registry(RR, 지역 레지스트리)를 통해 IP 주소 블록을 할당한다.
- 각 RR은 로컬 레지스트리에 추가 할당을 할 수 있다.
- ICANN은 DNS root zone 관리와 TLD(.com, .edu 등) 위임도 담당한다.
Q: 32비트 IP 주소가 충분한가?
- ICANN은 2011년에 마지막 IPv4 주소 블록을 regional registry에 할당했다.
- NAT(Network Address Translation)는 IPv4 주소 고갈 문제를 완화한다.
- IPv6는 128비트 주소 공간을 제공하여 주소 부족 문제를 해결한다.
반응형
'CS 지식 > 컴퓨터 네트워크' 카테고리의 다른 글
[네트워크] SDN과 Openflow 동작 원리와 미들박스(Middlebox) (0) | 2025.06.04 |
---|---|
[네트워크] NAT(network address translation)동작 원리와 IPv6 도입 (1) | 2025.05.30 |
[네트워크] 라우터 내부 구조, 포트, 버퍼 관리, 스케쥴링 내부 동작 설명 (2) | 2025.05.28 |
[네트워크] 네트워크 계층 개요와 라우터, data plane, control plane (0) | 2025.05.28 |
[네트워크] TCP 혼잡제어의 원리와 발전, QUIC 프로토콜의 발달 (TCP congestion control) (0) | 2025.05.19 |
댓글