코규리
article thumbnail

 

⚡본 글의 스터디내용은 🤖GPT4와 함께합니다

 

GitHub - VSFe/Tech-Interview

Contribute to VSFe/Tech-Interview development by creating an account on GitHub.

github.com

🤐 세부 질문


 

1️⃣ DHCP는 몇 계층 프로토콜인가요?

2️⃣ DHCP는 어떻게 동작하나요?

3️⃣ DHCP에서 UDP를 사용하는 이유가 무엇인가요?

4️⃣ DHCP에서, IP 주소 말고 추가로 제공해주는 정보가 있나요?

5️⃣ DHCP의 유효기간은 얼마나 긴가요?

📢 키워드별 설명 


0️⃣ DHCP가 뭔가요?


DHCP

  • 네트워크에서 컴퓨터 및 기타 네트워크 장치들에게 자동으로 IP주소와 관련 네트워크 설정을 할당하는 프로토콜
  • 네트워크 관리자가 수동으로 IP주소를 할당할 필요가 없음
  • IP주소의 중복 사용 최소화, 주소 관리를 효율적으로 도움

1️⃣ DHCP는 몇 계층 프로토콜인가요?


🧚🏻 : 질문의 요점이 뭘까요?

🍊: DHCP의 정의대로 생각하면 계층의 위치를 헷갈릴 수가 있다, 헷갈리지 말고 어디서 동작하는지에 집중하여 제대로 기억하자

바로 생각해보자면

🤔 DHCP을 금방 살펴보니 네트워크 관련 설정을 하잖아요, NetworkLayer일 것 같은데요?

🧑🏻‍🏫 아님.

😐 ,., DHCP가 사용하는 UDF는 TransportLayer에 속하잖아요! 그럼 DHCP도 TransportLayer인가요?

🧑🏻‍🏫 아님.

😟

 

 

차근차근 따져보자

✔️ DHCP가 네트워크 관리를 한다는 점에 대해

  • DHCP서버가 클라이언트에게 IP주소, 서브넷마스크, 기본 게이트웨이, DNS서버 정보 등을 제공함
  • 더불어 CLient가 네트워크에서 사용하는 장치의 MAC주소와 같은 정보도 제공함
  • 위와 같은 모든 기능들은 결국 ApplicationLayer에서 수행됨

✔️ DHCP는 Client에서 DHCP서버로 메시지를 보내기 위해 UDF를 사용한다는 점에 대해

  • UDF 자체는 전송 계층에 속한다 (🧐 그럼 TransportLayer일 여지도 있나?)
  • 그런데, DHCP가 쓰는 UDP는 DHCP-ApplicationLayer에서만 사용되는 포트 번호를 사용함
  • DHCP는 전송 계층의 프로토콜(UDF)을 사용하긴 하는데, 그 사용이 ApplicationLayer에서 동작
    • 전송계층의 통신규약을 사용하긴 하는데, 사용하는 port번호가 Application에 해당하는 걸 쓴다구.

✔️ Port에 대하여

  • Port는 OSI모델에서 TransportLayer에서 사용하는 개념
  • 그러나 다른 계층에서도 특정용도로 사용될 수 있음

📋세 줄 요약

2️⃣ DHCP는 어떻게 동작하나요?


📋한 줄 요약

💡 Discover, Offer, Request, Acknowledgment 메시지를 통해 동작한다 이때 이 모든 메시지를 주고받는데에 데이터전송규약-UDP가 사용된다

  1. Client가 네트워크에 접속 시도
    DHCP Discover메시지를 브로드캐스트
    : DHCP 서버에게 IP 주소 정보 요청하는 메시지임

 

  1. DHCP가 Discover메시지를 수신
    → 사용 가능한 IP주소 중 하나를 할당

→ 할당한 IP주소를 DHCP Offer메시지에 담아 Client에 전송

  1. Client가 DHCP Offer메시지 수신
    → 사용 가능한 IP주소가 맞는지 확인
    DHCP Request메시지를 브로드캐스트
    : 해당 IP주소를 사용하겠다는 의미임

  1. DHCP서버가 Request메시지 수신
    → 해당 IP주소를 Client에게 할당
    → DHCP서버가 클라이언트에게 DHCP Acknowledgment메시지 보냄

  1. Client가 DHCP Acknowledment 메시지 수신
    → 할당받은 IP주소를 사용하여 네트워크 접속

3️⃣ DHCP에서 UDP를 사용하는 이유가 무엇인가요?


🧚🏻 : 질문의 요점이 뭘까요?

🍊: DHCP는 프로토콜이고, 내부적으로 UDP라는 프로토콜도 사용한다. UDP와 대립되는 TCP란 선택지도 있었지만 그럼에도 불구하고 UDP를 쓴 목적을 이해했는가? 아닐까요~
🧚🏻‍♀️: 오~ 그죠 왜 데이터전송규칙으로 연결형 프로토콜(TCP)가 아니라 비연결형 프로토콜(UDP)을 택했느냐~

 

📋한 줄 요약

💡 DHCP에서 UDP를 사용하는 이유는
더 빠른 전송 속도 &&
더 간단한 프로토콜 &&
연결 지향성이 필요 없는 경우가 많기때문이다

더 빠른 속도를 갖는 이유와 그로 인한 장점

  • DHCP가 애초에 네트워크 부팅 과정에 사용되므로 빠를 수록 좋다
  • UDP의 특징에 의해 UDP데이터 전송을 위한 연결 설정 과정이 없음 → 빠른 전송 속도 보장
    • 뭐보다 빠르다? TCP보다 빠르다

단순한 프로토콜이 갖는 장점

  • DHCP는 대부분 작은 데이터 패킷을 주고 받는다
  • 단순하고 간단한 데이터 전송규칙이라는 건, Header에 담는 정보가 적다는 것임
    • TCP보다 더 적은 대역폭을 사용한다
  • 작은 데이터 패킷을 위해 더 적은 대역폭을 사용하는 게 적합하고, 따라서 UDP가 적절하다

연결 지향성의 부재를 통한 장점

  • DHCP일시적으로 클라이언트와 서버 사이의 연결이 필요한 경우가 많다
    • 위의 연결은 TCP처럼 지속적인 유지를 할 필요가 없다
  • UDP를 이용하면 더 간단하고 빠른 방법의 연결 설정이 가능하다
    • UDP는 비연결성을 가지므로

☹️DHCP는 UDP를 사용하잖아요(모든 메시지 전송에 대해서 말예요)?
그리고 DHCP는 일시적으로나마 Client-server사이의 연결이 필요하구요
그런데 UDP는 아예 연결이 안되는 비연결성을 가지는데 어떻게 가능한가요?

🧑🏻‍🏫 UDP는 비연결성을 가져요. 맞아요.
그래서 기본적으론 클라이언트와 서버 간의 연결을 설정/유지하진 않죠.
하지만 DHCP에서는 일시적 연결로서 사용됩니다.
애초에 프로토콜이라는 건 어떤 공개적인 문서-규약이며 이는 커스텀마이징 할 수 있는 거니까요.

 

4️⃣ DHCP에서, IP 주소 말고 추가로 제공해주는 정보가 있나요?


📋한 줄 요약

DHCP의 가장 큰 역할 : IP주소 자동 구성

  • 네트워크 관리에 있어서 핵심인 IP주소를 관리하며, 그 방식은 동적 할당임
    → IP충돌 방지, IP주소 관리의 용이성 증대
    → 네트워크에 새로운 기기 추가/기존 기기 이동시 수동 IP주소 문제 해결
    ⇒ 네트워크 관리의 간평성 증대, 네트워크 성능 향상 도모
    ⇒ 🍊: 네트워크 관리 프로토콜 답네!

DHCP는 IP주소와 관련하여 추가적인 정보를 제공한다

  • 서브넷 마스크
    : IP주소를 네트워크 주소와 호스트 주소로 구분하는데 사용하는 값
    서브넷마스크: 255.255.255.0 == 네트워크ID: 192.168.1, 호스트ID: 0
  • 기본 게이트웨이
    : LocalNetwork에서 벗어나 다른 Network와 통신하기 위한 주소, 일반적으로 라우터의 IP주소를 가짐
    기본게이트웨이: 192.168.1.1 → 다른 네트워크로 전송되는 모든 데이터가 192.168.1.1을 통해 라우팅
  • DNS 서버
    : 도메인 이름과 IP주소 간 매핑 정보 제공하는 서버(도메인 이름 → IP주소 변환 → 통신가능해짐)
    www.google.com 검색 → www.google.com의 실제 IP주소 찾기 → 그 곳에 있는 웹 페이지 불러오기
  • 그 외…
    • IP주소 대여 기간, 클라이언트 식별자, 클라이언트의 운영 체제 등…

5️⃣ DHCP의 유효기간은 얼마나 긴가요?


🧚🏻 : 질문의 요점이 뭘까요?

🍊: 마치 유효기간이 DHCP자체에서 규정해 놓은 것처럼 물어보지만, 실은 그게 아니예요. 확실히 알고있나 물어보기 위한 낚시인 거죠!

대여기간의 고려요소

  • 서버관리자로서, 네트워크의 크기와 사용자수, IP주소 수요, 장애 발생 가능성등을 고려한다
  • 대여 기간이 짧다 → IP주소의 빈번한 변경 → 네트워크 성능 저하
  • 대여 기간이 길다
    → IP주소가 사용되지 않는 기간에 대한 낭비 발생
    → 해당 IP를 쓰고싶은 또 다른 클라이언트에게 제공 불가 (IP주소 부족)
    → 대여기간이 짧았다면, 쓰지 않는 기간동안은 다른 사람이 쓸 수 있었다

그럼 유효기간이 지나면 계속 IP를 재설정해야하나?

  • IP주소 대여 기간을 일주일 이내로 설정했다고해서 IP주소를 일주일마다 변경해야하는 것은 아님
  • 더불어 DHCP Client는 IP주소를 변경하지 않고, DHCP Server가 IP주소/대여 기간을 동적할당함

예시

  1. client가 IP주소 대여기간을 24h로 잡았다
  2. (1). 24h 이내로 접속 → DHCP Server가 같은 IP를 다시 부여함
    (2). 24h 이후로 접속 → DHCP Server가 새로운 IP를 다시 부여함