.
1. IP
1.1 개요
•
OSI 모델의 네트워크 계층 기능
•
복잡한 인터넷 구조를 숨겨 모든 호스트를 1개의 가상 네트워크로 보이도록 함
•
네트워크 계층의 투명성(transparency) 제공 → 송신자는 경유 라우터/데이터링크 세부 사항을 몰라도 됨
1.2 비연결형 서비스
•
IP = 비연결성 · 비신뢰성 전송 서비스 (TCP는 연결지향형)
•
IP 역할: 호스트 주소 지정 + 데이터그램 전송
•
경유 데이터링크 및 라우터 정보 무시, 신뢰성 보장 없음
1.3 IP 데이터그램 헤더 필드
필드 | 크기 | 설명 |
버전 | 4비트 | IP version 식별번호 |
헤더길이 | 4비트 | 20~60 bytes (1 word = 4 bytes, 최소 5) |
서비스 유형 | 8비트 | QoS (우선순위 3bit + 서비스유형 4bit + 미사용 1bit) |
전체 길이 | 16비트 | 데이터그램 전체 길이 |
식별자 | 16비트 | 단편화 시 각 단편이 동일한 값 공유 |
플래그 | 3비트 | DF(Don't Fragment) / MF(More Fragment) |
단편 오프셋 | 13비트 | 원래 메시지 내 데이터 위치 |
TTL | 8비트 | 라우터 통과 시마다 1씩 감소, 0이면 폐기 |
프로토콜 | 8비트 | 상위계층 식별 (1=ICMP, 6=TCP, 17=UDP) |
헤더 검사합 | 16비트 | 헤더만의 오류 검사 |
발신지/목적지 IP | 각 32비트 | 송수신 IP 주소 |
서비스 유형(4비트): 0000=기본 / 0001=비용최소 / 0010=신뢰성최대 / 0100=처리량최대 / 1000=지연최소
1.4 IP 단편화 (Fragmentation)
•
MTU(Maximum Transfer Unit): 네트워크 링크에서 허용하는 프레임당 데이터 최대 길이
◦
Ethernet LAN: MTU = 1,500 byte
◦
CCITT X.25: MTU = 128 byte
•
MTU보다 큰 데이터그램은 중간 라우터에서 분할 → 목적지 호스트에서 재조립
•
MF=1이면 뒤에 단편 더 있음 / MF=0이면 마지막 단편
•
오프셋은 바이트 단위로 원래 위치를 나타냄
1.5 라우팅
•
IP 데이터그램이 목적지까지 경유할 경로를 결정
•
IP: 송신자 + 수신자 + 경로상 모든 라우터가 관여
•
TCP: 송신자와 수신자만 관여
•
라우팅 테이블 구성: 마스크 · 목적지 주소 · 다음홉 주소 · 플래그 · 참조횟수 · 사용 · 인터페이스 (7개 필드)
2. 주소변환 (ARP / RARP)
2.1 ARP (Address Resolution Protocol)
•
IP 주소 → 물리(MAC) 주소 변환
•
IP 주소(32bit)를 알 때, 실제 통신에 필요한 물리 주소(48bit)를 얻는 프로토콜
•
요청(Request): 브로드캐스트로 전송
•
응답(Reply): 유니캐스트로 전송
•
프락시 ARP: 라우터가 다른 서브넷의 ARP 요청에 대신 응답
2.2 RARP (Reverse Address Resolution Protocol)
•
물리 주소 → IP 주소 변환 (ARP의 역방향)
•
디스크 없는 호스트(X 터미널)처럼 물리주소만 아는 경우 사용
•
요청: 브로드캐스트 / 응답: 유니캐스트 (RARP 서버가 응답)
3. ICMP (Internet Control Message Protocol)
3.1 개요
•
인터넷 계층 프로토콜
•
IP는 비신뢰성 전송 → 오류 발생 시 오류 메시지/제어 메시지를 발신지에 보고하는 역할
•
ICMP는 오류를 수정하지 않고 보고만 함
•
메시지 형식: 유형(8) + 코드(8) + 검사합(16) + ICMP 메시지 + 옵션 데이터
3.2 메시지 유형
오류 보고 메시지 (Error Reporting)
유형 | 설명 |
발신지 억제 | 데이터그램이 처리능력 초과로 포화 상태 |
시간 초과 | TTL이 0으로 감소되어 폐기 |
목적지 도달 불가 | 라우터가 최종 목적지에 전달 불가 |
재지정 | 더 좋은 경로의 다른 라우터로 전달 |
질의 메시지 (Simple Query)
유형 | 설명 |
에코 요청/응답 | 두 호스트 사이 통신 가능 여부 확인 (ping) |
주소 마스크 요청/응답 | 호스트가 라우터에 서브넷 마스크 요청 |
타임스탬프 요청/응답 | 두 시스템 간 IP 데이터그램 왕복 시간 결정 |
라우터 요청/응답 | 연결된 라우터의 주소 요청 |
4. IGMP (Internet Group Management Protocol)
4.1 개요
•
인터넷 계층 프로토콜
•
IP 멀티캐스트 서비스를 위한 프로토콜
•
IP 호스트가 어떤 멀티캐스트 그룹에 참가 중인지 멀티캐스트 라우터에 통보
•
Multicast = 1-to-many (cf. unicast=1:1, broadcast=1:all)
4.2 IP 멀티캐스트 주소
•
클래스 D 주소 사용: 상위 4비트가 1110
•
주소 범위: 224.0.0.0 ~ 239.255.255.255
•
예약 주소: 224.0.0.1(모든 호스트·라우터), 224.0.0.2(모든 라우터)
4.3 IGMP 메시지 형식 (버전2)
유형(8) + 최대응답시간(8) + 검사합(16) + 그룹주소(32)
필드 | 설명 |
유형 | Query / Membership Report / Leave Report |
최대 응답시간 | 질의에 응답해야 하는 최대 허용 시간 |
검사합 | 전체 IGMP 메시지 오류 검사 |
그룹 주소 | 멀티캐스트 주소(클래스 D), General Query면 0 |
5. DHCP (Dynamic Host Configuration Protocol)
5.1 IP 주소 관리 방법 비교
방법 | 특징 |
Host Table | IP |
DNS | 계층적·분산 관리, 도메인 이름 사용 |
BOOTP | 동적 할당, 디스크 없는 호스트 지원 |
DHCP | BOOTP 발전형, IP 주소 재사용 가능, 임대 방식 |
5.2 DHCP 개요
•
응용계층 프로토콜
•
IP 주소 풀(pool)에서 사용 가능한 주소를 선택해 호스트에게 일정 기간 임대
•
DHCP 메시지 형식은 BOOTP와 동일 (300 bytes)
5.3 IP 주소 자동 할당 과정
단계 | 메시지 | 방향 | 내용 |
1 | DHCPDISCOVER | 클라이언트 → 브로드캐스트 | "DHCP 서버 있습니까?" |
2 | DHCPOFFER | 서버 → 클라이언트 | "이 IP를 N일간 사용 가능" |
3 | DHCPREQUEST | 클라이언트 → 브로드캐스트 | "이 IP 사용할 수 있을까요?" |
4 | DHCPACK | 서버 → 클라이언트 | "좋습니다. 서브넷 마스크, DNS 등 가져가세요" |
한줄 정리
프로토콜 | 한 줄 역할 |
IP | 패킷을 목적지까지 전달 (길 찾기) |
ARP/RARP | IP주소 |
ICMP | 전달 실패하면 오류 보고 |
IGMP | 멀티캐스트 그룹 관리 |
DHCP | IP주소 자동으로 나눠줌 |