본문 바로가기
CS/정보통신망

TCP/IP 네트워크 계층, IP, 주소변환, ICMP, IGMP, DHCP

by Renechoi 2024. 5. 17.

1. IP

1) IP 개요

- 인터넷 프로토콜(IP) : OSI 모델의 네트워크 계층의 기능

- 사용자에게 복잡한 인터넷의 개별 네트워크들의 구조를 숨겨 모든 호스트들을 연결하는 1개의 가상 네트워크로 보이도록 함.

- 네트워크 계층의 투명성(transparency)을 제공함

→ 송신자 호스트는 수신자 호스트까지 경유해야 하는 데이터링크 및 라우터에 관한 물리적 세부 사항을 알지 못해도 데이터그램을 전송할 수 있도록 해줌.

 

 

2) 비연결 서비스 

비연결 서비스에서 네트워크 프로토콜은 각 패킷을 상호 독립적으로 취급하며 패킷들 사이에는 아무 관계가 없다. 

 

인터넷 계층의 투명성
• IP 역할: 호스트의 주소 지정 및 데이터 그램 전송 

• 경유해야 하는 데이터 링크 및 라우터 정보를 무시 

• 신뢰성이 없는 데이터 전송

 

 

 


- 최선의 노력(Best Effort):
  - 비연결형 프로토콜인 IP는 단지 최선의 노력으로 데이터 전송 서비스를 제공한다.
  - 데이터 전송의 신뢰성을 보장하지 않으며, 패킷이 손실되거나 순서가 뒤바뀔 수 있다.

 

 

3) 데이터그램 


IP 계층의 패킷을 데이터그램(datagram)이라고 한다. 데이터그램은 가변길이의 패킷으로 헤더와 데이터 부분으로 구성된다. 헤더의 크기는 20~60바이트이며 라우팅과 전달에 필요한 정보를 포함하고 있다. TCP/IP에서는 보통 헤더를 4바이트 단위로 나타낸다.

(1) 버전 - 4비트
- 데이터그램을 생성한 IP의 버전을 식별번호로 나타낸다. 현재의 버전은 4이다.

(2) 헤더 길이 - 4비트
- 옵션을 포함한 데이터그램 헤더의 전체 길이를 4비트 단위로 나타낸다. 헤더는 20~60바이트를 사용할 수 있고, 선택사항이 없다면 20바이트의 값을 가지며 어깨의 필드 값은 5이다(즉, 5 × 4=20). 옵션 필드가 최대 길이로 설정되어 있으면, 필드 값은 15가 된다(즉, 15 × 4=60).

(3) 서비스 유형 - 8비트
- 데이터그램의 서비스 품질(Quality of Service: QoS)을 나타내는 8비트 코드이다. 처음 3비트는 우선순위를 나타낸다. 다음 4비트는 TOS(Type of Service) 비트라고 하며, 마지막 비트는 사용되지 않는다. 우선순위는 라우터에 혼잡이 발생한 경우에 사용된다. 혼잡 발생 시 데이터그램의 일부가 폐기되어야 하는데, 가장 낮은 우선순위 값을 가진 데이터그램이 먼저 폐기된다. 현재 버전 4에서는 사용되지 않는다.
- 한편, TOS 비트는 4비트의 서브필드로서 오직 한 비트만 1의 값을 가질 수 있다. 특정 응용 프로그램에서 다섯 가지 서비스 유형별 TOS 비트를 보여 준다. 특정 응용 프로그램에서 다섯 가지 서비스 유형별 TOS 비트 중의 하나를 사용하여 자신에게 필요한 서비스 품질의 요구 조건을 만족시킬 수 있다. 예를 들어, FTP(File Transfer Protocol) 프로그램의 경우 대량 데이터를 전송하기 위해 최대 처리량을 요구하므로 TOS 비트를 0100으로 설정하기를 원할 것이다.

(4) 전체 길이 - 16비트
- 데이터그램의 전체 길이를 바이트 단위로 나타낸다. 이 필드와 헤더 길이 필드를 사용하여 다음과 같이 데이터그램 내의 데이터 길이를 얻을 수 있다.
- 데이터 길이 = 전체 길이 – 헤더 길이

(5) 식별자 - 16비트
- 단편화를 위해 사용되는 필드로 호스트가 전송하는 각 데이터그램을 식별하는 필드이다. 데이터가 절단되더라도 절단된 데이터를 담고 있는 각 데이터그램은 동일한 식별자를 가진다.

(6) 플래그 - 3비트
- 단편화를 위하여 사용되는 3비트 필드로 처음 비트는 사용되지 않으며, 두 번째 비트는 DF(Don’t Fragment) 비트로 ‘1’이면 단편화하지 말 것을 명시한다. 단편화를 수행해야 하는 비트가 ‘1’로 설정되어 있었다면, 데이터그램을 폐기하고 ICMP 오류 메시지를 발신지 호스트에 보낸다. 반대로, 값이 ‘0’이면 단편화를 수행할 수 있다. 세 번째 비트는 MF(More Fragment) 비트로서, 이 값이 ‘1’이면 데이터그램의 마지막 단편이 아니라는 것을 나타내고, ‘0’이면 마지막 단편이거나 유일한 단편임을 나타낸다.

(7) 단편 오프셋 - 13비트
- 단편 오프셋(fragment offset)은 데이터 단편이 발생한 경우 단편된 데이터그램에 포함된 데이터가 단편 이전의 원래 데이터 내에서 어느 위치에 있었는지를 나타낸다. 단편 오프셋 값은 원래의 데이터를 기준으로 8바이트 단위로 계산된다.

(8) TTL - 8비트
- TTL(Time To Live)은 데이터그램이 폐기되기 전에 패킷이 활동할 수 있는 기간을 나타내는 필드이다. 이 필드는 실제 처리 시간과 관계없이 라우터를 방문할 때마다 하나씩 감소된다. 이 필드의 값이 ‘0’이 되면 데이터그램은 폐기된다. 따라서 이 필드는 데이터그램의 전송 중에 거쳐야 하는 최대 라우터의 수를 나타내며, 대략 두 호스트 사이에 위치한 라우터 수의 두 배로 설정한다.

(9) 프로토콜 - 8비트
- 데이터그램과 관련된 상위 계층의 프로토콜을 식별하는 필드이다. 필드 값이 ‘1’이면 데이터 부분이 ICMP 메시지를, ‘6’이면 TCP 세그먼트를, ‘17’이면 UDP 사용자 데이터그램을 나타낸다.

(10) 헤더 검사합 - 16비트
- 전송오류를 검사하는 필드로 검사합(checksum) 방식을 사용한다. 헤더만 대상으로 하므로 데이터는 검사하지 않는다.

(11) 발신지 및 목적지 IP 주소 - 32비트+32비트
- 발신지 및 목적지 호스트를 식별하는 IP 주소 필드이다.

(12) 옵션 및 패딩
- 옵션필드는 라우팅 및 보안 등과 같은 제어를 위해 사용되며, 옵션이 사용되면 IP 헤더를 40바이트까지 확장할 수 있다. 4바이트 단위로 맞추기 위해 필요시 0으로 채우는 패딩(padding)을 수행한다.

 

 

 

 

 

 

4) IP 단편화 

IP 데이터그램이 송신자로부터 수신자에게 이르기까지 중간 네트워크를 경유할 때, 각 네트워크 링크의 MTU(Maximum Transfer Unit) 크기에 맞게 데이터그램을 분할할 필요가 있다. MTU는 네트워크 링크에서 허용하는 프레임당 데이터의 최대 길이이다. 예를 들어, Ethernet LAN의 MTU는 1,500바이트이고, CCITT X.25의 MTU는 128바이트이다. 

데이터그램이 전송 중 MTU보다 클 경우, 데이터그램은 각 네트워크의 MTU에 맞게 분할되어야 하며, 최종 목적지 호스트에서 다시 재조립된다. 이 과정에서 IP 헤더의 플래그와 단편 오프셋 필드를 활용하여 원래의 데이터그램을 재구성한다.

MTU에 맞추어 분할된 데이터그램의 일부는 전송 과정 중 다시 분할되거나 재조립될 수 있으며, 이러한 과정을 통해 데이터그램이 목적지 호스트까지 도달할 수 있다.

 

 

 

 

5) 인터넷상에서의 라우팅 


라우팅(routing)은 송신자가 IP 데이터그램을 수신자에게 전송하기 위해 각 IP 데이터그램이 목적지 호스트까지 진행하면서 경유할 경로를 결정하는 것이다. TCP/IP 계층의 라우팅은 다음과 같은 방식으로 이루어진다.

1. 라우터의 역할:
    - 라우터는 서로 다른 네트워크를 연결하고 IP 데이터그램을 전달하는 역할을 한다.
    - IP는 데이터그램을 목적지 호스트에 도달할 때까지 경로상의 라우터들을 통해 전달한다.

2. 라우팅 테이블:
    - 각 라우터는 라우팅 테이블을 통해 데이터그램의 경로를 결정한다.
    - 라우팅 테이블은 각 라우터가 가지고 있는 경로 정보의 목록이다.

3. 라우팅 테이블 관리:
    - 라우터는 라우팅 테이블을 사용하여 목적지 IP 주소와 일치하는 경로를 찾는다.
    - 만약 일치하는 경로가 없다면, 디폴트 경로(default route)를 사용하여 데이터그램을 전송한다.

4. IP 라우팅:
    - IP 라우팅은 홉-바이-홉(hop-by-hop) 방식으로 이루어진다.
    - 각 라우터는 다음 홉(next hop)으로 데이터그램을 전달하며, 최종적으로 목적지 호스트에 도달하게 한다.

5. 동일한 물리적 네트워크에서의 데이터그램 전송:
    - 호스트 A가 호스트 B로 IP 데이터그램을 전송할 때, 두 호스트가 동일한 물리적 네트워크에 있는 경우, ARP(Address Resolution Protocol)를 사용하여 목적지 호스트의 물리 주소를 알아낸다.
    - IP 데이터그램은 링크 헤더에 물리 주소를 포함하여 전송된다.

6. 다른 물리적 네트워크에서의 데이터그램 전송:
    - 호스트 A가 다른 네트워크에 있는 호스트 B로 IP 데이터그램을 전송할 때, 라우터를 통해 데이터그램을 전달한다.
    - 각 라우터는 라우팅 테이블을 사용하여 다음 홉을 결정하고 데이터그램을 전송한다.

7. 중간 라우터의 역할:
    - 중간 라우터는 데이터그램의 IP 헤더를 검사하여 목적지 IP 주소와 일치하는 경로를 찾는다.
    - 라우터는 목적지 네트워크의 물리 주소로 링크 헤더를 설정하여 다음 라우터나 최종 호스트로 전송한다.

 


주요 개념 요약

-라우팅: IP 데이터그램이 목적지까지 도달하기 위해 경유할 경로를 결정하는 과정.
- 라우팅 테이블: 라우터가 경로 정보를 저장하는 테이블.
- 홉-바이-홉: 데이터그램이 여러 라우터를 거쳐 최종 목적지에 도달하는 방식.
- 동일 네트워크: ARP를 사용하여 직접 물리 주소를 알아내어 데이터그램 전송.
- 다른 네트워크: 라우터를 통해 데이터그램을 중계하여 목적지에 도달.

 

 

 

 

2. 주소변환

1) ARP

- ARP(Address Resolution Protocol): IP 주소를 물리주소로 변환해주는 데이터 링크 계층의 프로토콜.

 

동적 바인딩

  - 인터넷 인터페이스는 48비트의 고유한 물리주소를 사용.
  - 네트워크 인터페이스 카드(NIC)를 교체해도 호스트의 물리주소는 변경되지 않음
  - 48비트 물리주소를 32비트 IP 주소와 바로 매핑할 수 없음
  - ARP는 브로드캐스트 기능을 사용하여 IP 주소를 물리주소로 매핑
  - ARP는 주소 매핑 테이블을 유지하지 않고 동적 바인딩 방식으로 매핑 수행

 

ARP 프로토콜

  - 모든 호스트는 ARP 프로토콜을 이용해 다른 호스트의 물리주소를 얻을 수 있음
  - 임의의 호스트가 다른 호스트의 물리주소를 얻고자 할 때마다 대상 호스트의 IP 주소를 포함한 ARP 요청 메시지를 네트워크 상의 모든 호스트에게 브로드캐스트
  - 요청 메시지를 수신한 대상 호스트는 자신의 물리주소가 포함된 ARP 응답 메시지로 응답

2) RARP 

- RARP(Reverse Address Resolution Protocol): 물리주소만 알고 있는 호스트가 자신의 IP 주소를 찾기 위해 사용하는 데이터 링크 계층의 프로토콜

- 디스크가 있는 호스트는 부팅 시 디스크에 저장된 구성 파일에서 IP 주소를 찾을 수 있지만, 디스크가 없는 호스트는 다른 방법에 의지

 

RARP 패킷 형식

  - ARP와 거의 동일. 차이점은 프레임 유형이 0x8035, 오퍼레이션 필드 값이 다름.
  - RARP 요청 시 값은 3, 응답 시 값은 4.
  - RARP 요청은 브로드캐스트, 응답은 유니캐스트.

 

동작 원리

  - 호스트의 물리주소는 유일하기 때문에 물리주소만으로 호스트를 식별.
  - 디스크가 없는 호스트는 자신의 물리주소를 포함한 RARP 요청 메시지를 브로드캐스트.
  - RARP 요청 메시지를 수신한 서버는 IP 주소를 요청한 호스트에 응답.
  - IP 주소를 요청한 호스트는 응답을 받으면 자신의 IP 주소를 알게 됨.

활용

  - RARP는 컴퓨터를 네트워크에 처음 연결할 때 사용하는 프로토콜로, 이더넷, 토큰링, FDDI 등에서 사용.

 

 

 

3. ICMP

IP는 라우터들을 경유하여 최종 목적지까지 데이터그램을 전송하는 신뢰성이 없는 비연결형 전송 서비스를 제공한다. 라우터는 네트워크 혼잡과 같은 비정상적인 상태로 인해 데이터그램을 전송하는 데 문제가 있음을 발견하면 발신지 호스트에게 문제가 발생했다는 사실을 통지할 필요가 있다. ICMP(Internet Control Message Protocol)는 이러한 오류 또는 제어 메시지를 제공하는 프로토콜이다.

ICMP 메시지는 8바이트의 헤더와 가변길이의 데이터 부분으로 구성되어 있다. 헤더 형식은 메시지별로 다르지만 처음 4바이트는 동일하다.

ICMP 메시지

ICMP 메시지는 각자의 형식을 가지고 있지만, 모든 ICMP 메시지는 동일한 필드를 가지고 있다.

1. 유형 및 코드
   - 유형(type) 필드는 ICMP 메시지를 식별하며, 코드(code) 필드는 메시지의 유형에 관한 추가 정보를 제공한다. 이들 필드는 ICMP 메시지의 나머지 필드의 형식을 결정한다.

2. 검사합
   - 전체 ICMP 메시지에 대한 전송 오류를 검사하는 필드이다.

3. ICMP 메시지
   - echo, timestamp 등과 같은 ICMP 메시지에서 사용되는 필드이다. 사용하지 않는 경우 0으로 채워진다.

4. 옵션 데이터
   - 옵션 데이터 필드는 ICMP 메시지 유형에 따라서 IP 데이터그램의 첫 64비트 및 전송 계층 프로토콜의 헤더를 포함한다.

 

 


ICMP 메시지 유형

ICMP 메시지 유형은 오류 보고 메시지와 질의 메시지로 나뉘며, 이는 오류 및 상태 정보를 제공한다.

1. 오류 보고 메시지
   - 발신지 억제: 데이터그램이 라우터와 호스트의 처리 능력을 초과할 정도로 빨리 도착하여 포화 상태에 이르면 해당 라우터에서는 ICMP 발신지 억제(source quench) 메시지를 보내어 속도를 늦출 것을 요청함으로써 흐름 제어를 제공한다.
   - 시간 초과: 라우터는 TTL 필드의 값이 0으로 감소되면 데이터그램을 폐기하고 시간 초과(time exceeded) 메시지를 전송한다.
   - 목적지 도달 불가: 라우터는 데이터그램이 최종 목적지에 도달할 수 없다고 판단될 때 데이터그램을 송신한 호스트에게 목적지 도달 불가(destination unreachable) 메시지를 전송한다.
   - 재지정: 다른 라우터를 통해 더 나은 경로로 IP 패킷을 전달할 수 있을 때 재지정(redirect) 메시지를 송신 측 호스트에게 전송하여 더 좋은 경로를 알리는 데 사용된다.

2. 질의 메시지
   - 에코 요청 및 응답: 에코 요청(echo request) 메시지를 수신한 호스트는 에코 응답(echo reply) 메시지를 전송하여 두 호스트 사이에 통신이 가능한지 확인한다.
   - 주소 마스크 요청 및 응답: 주소 마스크를 얻기 위해 호스트는 주소 마스크 요청(address mask request) 메시지를 브로드캐스팅하고, 요청을 받은 라우터는 32비트 마스크 값을 포함하는 주소 마스크 응답(address mask reply) 메시지로 응답한다.
   - 타임 스탬프 요청 및 응답: 호스트나 라우터에서 현재 날짜와 시간을 지시하는 메시지로 두 시스템 간에 IP 데이터그램이 오고 가는 데 필요한 왕복 시간을 결정한다.
   - 라우터 요청 및 응답: 다른 네트워크 호스트에 데이터를 전송할 때 자신의 네트워크에 연결된 라우터의 주소를 요청하기 위해 사용한다.

 

 

 

 

 

4. IGMP

 

IGMP(Internet Group Management Protocol)는 인터넷에서 멀티캐스트를 위해 사용되는 프로토콜이다. 멀티캐스트는 하나의 그룹에 속한 호스트들에게 메시지를 전송하는 방식으로, IGMP는 이 멀티캐스트 그룹을 관리하는 역할을 한다.

IP 멀티캐스트

IP 멀티캐스트는 클래스 D 주소를 사용한다. 클래스 D 주소의 처음 4비트는 1110으로 시작하며, 나머지 28비트는 특정한 멀티캐스트 그룹을 나타낸다. 멀티캐스트 주소 범위는 224.0.0.0에서 239.255.255.255까지이다. 예를 들어, 224.0.0.0은 예약된 멀티캐스트 주소이다.

 


IGMP 메시지

 

IGMP 메시지는 다양한 형식이 있으며, 각 필드에 대한 설명은 다음과 같다.

1. 유형
   - 메시지 유형을 나타낸다. 예를 들어, general query 또는 special query는 0x11, membership report는 0x16, leave report는 0x17이다.

2. 최대 응답 시간
   - 질의에 응답해야 하는 시간을 정의한다. 10분의 1초 단위로 표현된다.

3. 검사합
   - 전체 IGMP 메시지에 대한 전송 오류를 검사하는 필드이다.

4. 그룹 주소
   - 클래스 D의 IP 주소이다. 라우터가 0.0.0.0으로 설정하여 질의하면 호스트는 멀티캐스트 주소를 넣어 응답한다.

 

IGMP 프로토콜

IGMP 프로토콜은 다음과 같은 절차로 작동한다.

1. 그룹 가입
   - 호스트가 멀티캐스트 그룹에 가입하면 IGMP 보고 메시지를 전송한다. 동일한 호스트에서 동일한 그룹에 여러 프로세스가 가입해도 하나의 IGMP 보고 메시지만 전송된다.

2. 그룹 탈퇴
   - 호스트의 모든 프로세스가 그룹에서 탈퇴할 경우 IGMP 보고 메시지를 전송하지 않는다.

3. 주기적인 질의
   - 멀티캐스트 라우터는 주기적으로 IGMP 질의 메시지를 전송하여 그룹에 속한 호스트를 확인한다. 하나 이상의 그룹 주소가 가능한 경우 그룹 주소는 0.0.0.0으로 설정된다.

4. IGMP 보고
   - 그룹에 속한 프로세스가 있는 호스트는 그 그룹마다 하나의 IGMP 보고 메시지를 전송한다.

 

 

 

5. DHCP 

DHCP(Dynamic Host Configuration Protocol)는 네트워크 관리자들이 IP 주소를 중앙에서 관리하고 클라이언트들에게 자동으로 할당해 주는 프로토콜.

 

IP 주소관리

- IP 주소관리 방식:
  1. 호스트 테이블: 모든 IP 주소와 이름을 매핑
  2. DNS: 도메인 이름을 IP 주소로 변환
  3. BOOTP: 고정 및 동적 IP 주소 할당  

  4. DHCP (Dynamic Host Configuration Protocol) 

 

 

IP 주소관리 방식

1. 호스트 테이블: 모든 IP 주소와 이름을 매핑. 
     - 장점: 중앙집중형 관리 방식, 호스트 테이블 구조가 간단함.
     - 단점: 호스트의 급속한 증가와 변화에 대응하기 어려움, 매핑 정보의 일관성 유지 어려움, 계층적 구조가 아닌 평면 구조, 중복 정보를 포함함.
 

2. DNS: 도메인 이름을 IP 주소로 변환. 
     - 계층적 구조 및 분산 관리 특성.
     - 예) 도메인 이름: knou.ac.kr.
     - 분산 관리의 문제: name server는 특정 네트워크 영역만의 정보를 가지며, 다른 영역에 대해서는 다른 name server의 정보를 참조. name server 데이터의 복잡성 및 수작업에 의한 데이터 오류 가능성.

 

3. BOOTP: 고정 및 동적 IP 주소 할당.
     - 기존 방식은 IP 주소를 수작업으로 할당(정적 할당).
     - BOOTP는 동적으로 IP 주소를 할당.
     - 디스크가 없는 호스트(X 터미널)에 대해 주소 및 설정 정보를 자동적으로 할당하고 관리하는 프로토콜.
  
  4. DHCP: 동적 IP 주소 할당 프로토콜.
     - DHCP는 BOOTP에서 발전된 프로토콜로, 더 유연하고 주소의 재사용이 가능하다.
     - 클라이언트가 네트워크에 접속하면 DHCP 서버로부터 자동으로 IP 주소를 할당받음.
     - DHCP는 호스트 이동성 제공 등의 다양한 기능을 제공하여 주소할당에 관해 네트워크 관리자의 작업을 단순화시키는 장점이 있음.

 


DHCP 메시지 형식

- DHCP 메시지는 BOOTP와 동일한 형식을 가짐.
- 필드: Op 코드, 하드웨어 유형, 하드웨어 주소 길이, 트랜잭션 식별자, 클라이언트 IP 주소, 서버 IP 주소 등.

 

 


DHCP 프로토콜

- DHCP 프로토콜은 네트워크 파라미터를 전달하기 위한 프레임워크를 제공.
- DHCP 네트워크 구성:
  1. DHCP 클라이언트: IP 주소를 요청.
  2. DHCP 서버: IP 주소를 할당.
  3. BOOTP/DHCP 중계 에이전트: 정보 전달 중계.

- IP 주소 자동 할당 절차:
  1. DHCP 클라이언트가 DHCPDISCOVER 메시지 브로드캐스트.
  2. DHCP 서버가 DHCPOFFER 메시지로 응답.
  3. 클라이언트가 DHCPREQUEST 메시지로 응답.
  4. 서버가 DHCPACK 메시지로 최종 할당.

 

 

 

 

 

 


 

참고자료: 정보통신망 | 손진곤 (지은이) 한국방송통신대학교출판문화원 

 

반응형