Suhwanc

본 내용은 Computer networking : a top-down approach 책을 바탕으로 정리하였습니다.

 

Index

  • 1. DHCP
  • 2. NAT
  • 3. ICMP
  • 4. IPv6

 

이번 9장도 앞서 8장과 동일하게 네트워크 계층을 다룰 것인데, 이번에는 IP에 관련한 세부적인 용어들을 정리하려 한다.

 

1. DHCP

 

DHCP는 Dynamic Host Configuration Protocol의 약자로서, 호스트가 IP주소를 동적으로 할당받게 해 준다.

현재 가장 많이 사용하는 방식이며, 네트워크에서 자동으로 호스트와 연결시켜주는 능력 때문에 "plug-and-play" 프로토콜이라고도 한다. (콘센트에 꽂으면 바로 전기를 보내는 것과 같다!)

 

1.1 장점

  • 해당 호스트가 네트워크에 접속하고자 할 때마다 동일한 IP 주소 또는 임시 IP 주소 할당
  • 호스트가 빈번하게 접속하고 떠나는 가정 인터넷 접속, 무선 LAN에도 폭넓게 사용 가능

1.2 DHCP 프로토콜 4단계

  • 1. DHCP 서버 발견(discovery) : 클라이언트가 서버에게 브로드캐스트
  • 2. DHCP 서버 제공(offer) : 서버가 클라이언트에게 IP 주소 제공
  • 3. DHCP 요청(request) : 클라이언트가 서버에게 ip 주소 획득 신호
  • 4.DHCP ACK : 서버가 클라이언트에게 ok msg!

1.3 DHCP의 위치

DHCP 서버의 위치는 보통 클라이언트들과 같은 서브넷 내부에 있다.

 

1.4 추가 기능

DHCP 는 IP 주소 할당 말고도 더 많은 기능을 수행할 수 있다.

  • 클라이언트에게 가장 첫 번째 게이트웨이의 주소를 알려준다.
  • DNS 서버의 IP주소와 이름을 알려준다.
  • network mask를 통해 서브넷의 크기(네트워크 ID)를 알려준다.

 

2. NAT : IP주소 할당방식

NAT는 network address translation의 약자로 IP 주소의 부족 문제를 해결하기 위해 등장하였다.

NAT가 사용하는 방식은 ip 주소를 내부, 외부로 나누고, 내부 IP들을 외부(공인 IP)로 묶는다.

예를 들어 내부(local network)에 있는 랩탑, 휴대폰, 데스크톱들을 한데 묶어 외부 IP 1개로 할당해준다는 것이다.

따라서 NAT 라우터는 외부세계로 하나의 IP 주소를 갖는 하나의 장비로 동작한다.

 

특징

  • 외부에 알리지 않고, 내부의 디바이스 IP 주소를 바꿀 수 있다.
  • 모든 내부 디바이스에 대해 단 하나의 IP 주소만을 갖는다.
  • 내부 IP주소의 영향 없이 ISP(ex. kt, skt, lg)를 바꿀 수 있다. (공유기만 쓰윽~ 바꾸는 것처럼)

 

동작 방식

  • 내부 -> 외부 데이터그램 이동 시, 공인 IP(외부)로 바뀌는 작업 + NAT 테이블에 주소 저장 필요
  • NAT 테이블에는 매칭 되는 공인, 사설 IP와 포트번호가 들어있다.
  • 외부 -> 내부 데이터그램 이동 시, NAT 테이블을 보고 IP 주소를 변환한다.

 

문제점

  • 라우터는 네트워크 계층에서 동작하지만, 포트는 트랜스포트 계층이다. (호환성)
  • 주소가 너무 적다. (이후 IPv6에서 해결)

 

3. ICMP : 인터넷 제어 메시지 프로토콜

 

위 프로토콜은 IPv4를 기준으로 설명한 내용입니다!

 

ICMP는 internet control message protocol의 약자로서

호스트와 라우터 간의 네트워크 계층 정보를 통신하기 위해 사용된다. (일반적으로 오류보고)

 

ICMP는 IP의 한 부분이 아닌, ICMP 메시지가 IP 패킷으로 전송되므로 IP 위에 있다.

 

3.1 traceroute

 

traceroute 명령어는 특별하게 만들어진 IP TTL 헤더 필드들을 가진 IP 데이터그램을 전송하고,

응답에서 도착하지 못할 시 "port unreachable" 메시지 (type 3, code 3)을 반환한다.

 

초기 TTL은 1로 설정되고 계속 보낼수록 1씩 증가하게 된다.

 

3.2 ping

 

ping은 다른 호스트에 IP 데이터그램 도달 여부를 조사하기 위한 프로그램으로

echo 또는 request 메시지를 원격 호스트로 보내 응답을 기다린다.

 

 

4. IPv6

 

IPv6은 기존 IPv4의 주소 부족 문제를 해결하기 위한 새로운 IP 프로토콜이다.

 

4.1 IPv6 데이터그램 포맷

 

위 그림은 IPv6의 패킷 포맷이다.

 

특징

  • 확장된 주소 기능 : 32bit -> 128bit 주소 크기
  • 간소화된 40바이트 고정 길이 헤더 - 기존 head, len 필드가 사라졌고 fragmentation을 보조하는 여러 필드(offset, flag, 16-bit id)가 삭제되었다.
  • checksum 필드의 삭제 - 기존 체크섬의 문제점인 시간 소요 문제 때문에 삭제되었다.
  • 다음 헤더 - 프로토콜(tcp, udp)을 구분한다. (IPv4의 프로토콜 필드와 같다)
  • 우선순위(pri) - 데이터그램 간의 우선순위를 지정한다.
  • 흐름 라벨링 - 하나의 stream으로 보아 오디오/비디오 전송을 하나의 흐름으로 처리한다. 

4.2 터널링

 

터널링은 IPv6 트래픽을 전달하기 위해 기존의 IPv4 라우팅 인프라를 사용하는 방법을 제공한다.

 

 

위 그림과 같이 IPv4 영역에 IPv6 데이터그램을 캡슐화하여 IPv4 라우팅 토폴로지 영역으로 이를 터널링 하게 된다.

 

굳이 이렇게까지 사용하는 이유는.. 기존 IPv4를 너무 오래 써왔기 때문에 네트워크 계층 프로토콜을 한 순간에 바꾸기에는 너무 어렵기 때문이다.

 

'Computer Network' 카테고리의 다른 글

11. 인터넷에서의 라우팅  (1) 2020.06.14
10. 라우팅 알고리즘  (2) 2020.06.09
8. Network Layer 개요  (0) 2020.06.06
7. TCP 혼잡제어  (0) 2020.06.04
6. TCP - transport's view  (0) 2020.06.03