1. IP 프로토콜의 개요
IP(Internet Protocol) 프로토콜은 비연결형 서비스를 제공하는 네트워크 계층 프로토콜이다. 전송을 보장하지 않는 Best Effort 방식을 기반으로 작동하며, 데이터 전송 시 패킷의 분할과 병합 기능을 지원한다. 또한, IP 프로토콜은 데이터에 대한 체크섬을 제공하지 않고, 헤더에 대해서만 체크섬을 제공한다.
IP 프로토콜은 다음과 같은 주요 기능을 수행한다.
- 비연결형 전송 방식
- 패킷의 분할(Fragmentation) 및 병합(Reassembly)
- 헤더 체크섬을 통한 오류 검출
2. IP 헤더 구조
IP 패킷은 전송을 위해 다양한 정보를 포함하는 헤더를 가진다. 주요 필드는 다음과 같다.
- DS/ECN 필드
- DS(Differentiated Services): 트래픽 구분을 위해 패킷에 우선순위를 부여하는 필드이다. 다양한 서비스 품질(QoS)을 구현할 수 있다.
- ECN(Explicit Congestion Notification): 네트워크 혼잡 상태를 송신자에게 알려주는 기능을 지원한다. 혼잡 발생 시 패킷을 폐기하지 않고 알림만 제공하여 통신 품질을 개선할 수 있다.
- 패킷 분할 관련 필드
- IP는 데이터링크 계층의 최대 전송 단위(MTU, Maximum Transmission Unit)보다 큰 데이터를 전송할 때, 패킷을 분할하여 여러 개의 작은 패킷(Fragment)으로 전송하고, 수신 측에서 이를 다시 병합한다.
- 주소 관련 필드
- Source Address: 송신 호스트의 IP 주소를 나타낸다.
- Destination Address: 수신 호스트의 IP 주소를 나타낸다.
- 기타 필드
- Version: IP 프로토콜의 버전을 나타낸다(IPv4 또는 IPv6).
- Header Length: IP 헤더의 길이를 나타낸다.
- Total Length: IP 헤더와 데이터 부분을 합한 전체 길이를 나타낸다.
- Identification, Flags, Fragment Offset: 패킷 분할 및 병합을 위한 정보를 제공한다.
- Time to Live (TTL): 패킷이 네트워크를 무한히 순환하지 않도록 생존 시간을 설정한다.
- Protocol: 상위 계층 프로토콜(TCP, UDP 등)을 지정한다.
- Header Checksum: 헤더의 오류를 검출하기 위한 체크섬을 제공한다.
3. 패킷 분할
- 분할의 필요성
IP 프로토콜은 상위 계층에서 전달받은 데이터가 데이터링크 계층에서 허용하는 최대 전송 단위(MTU)보다 클 경우, 이를 작은 조각으로 나누어 전송한다. 이러한 과정을 패킷 분할(Fragmentation)이라 한다. - 분할의 예
예를 들어, MTU가 1500바이트인데 IP 패킷이 4000바이트일 경우, 이를 1500바이트 이하로 분할하여 여러 개의 패킷으로 전송한 후, 수신 측에서 다시 병합하여 원래의 데이터로 복원한다.
4. DHCP 프로토콜
DHCP(Dynamic Host Configuration Protocol)는 네트워크 상의 여러 컴퓨터가 IP 주소를 공유하고 동적으로 할당받아 사용할 수 있도록 하는 프로토콜이다. DHCP를 통해 수동 설정 없이 IP 주소, 서브넷 마스크, 게이트웨이 주소 등을 자동으로 설정할 수 있다.
- IP 주소 공유 방식
DHCP 서버는 네트워크에 연결된 클라이언트에게 IP 주소를 임대하는 방식으로 주소를 효율적으로 관리한다. IP 주소는 고정되지 않고 필요에 따라 할당되거나 회수된다. - DHCP 주요 메시지
- DHCP_DISCOVER: 클라이언트가 DHCP 서버를 찾기 위해 네트워크에 브로드캐스트로 전송하는 메시지이다.
- DHCP_OFFER: DHCP 서버가 클라이언트에게 IP 주소를 제안하는 메시지이다.
- DHCP_REQUEST: 클라이언트가 특정 DHCP 서버로부터 제안받은 IP 주소를 사용하겠다는 의사를 나타내기 위해 전송하는 메시지이다.
- DHCP_ACK: DHCP 서버가 클라이언트의 요청을 승인하고, IP 주소를 할당했음을 알리는 메시지이다.
- DHCP_NACK: DHCP 서버가 클라이언트에게 새로 IP 주소를 요청하도록 지시하는 메시지이다.
요약
IP 프로토콜은 비연결형 서비스를 제공하며, 패킷 분할과 병합 기능을 수행하고, 데이터 체크섬 대신 헤더 체크섬을 통해 오류를 검출한다. 또한, Best Effort 원칙에 따라 데이터 전송을 수행한다. DHCP 프로토콜은 IP 주소를 여러 컴퓨터가 공유하여 동적으로 할당하는 기능을 제공하며, 다양한 메시지 교환 과정을 통해 IP 설정을 자동화한다.