본문 바로가기

Computer Science/네트워크

9. UDP 응용프로토콜(TFTP, DHCP)

UDP, TFTP, DHCP에 대한 계층구조

ip에 의해시스템 가지 전달이 되면

프로세스까지 전달이 됩니다!

 

udp는 세션 없이 간단한 게 전송만 하는 프로토콜입니다.

재전송이 의미가 없는 경우인 음성, 화성 전송등 영역에 쓰입니다.(지연 때문에)

 

RTP(Realtime Transfer Protocol)도 UDP를 사용합니다.

실시간으로 전달해야 하니깐~

 

 

인터넷 폰 응용에 대한 UDP의 활용

tpc는 오류가 나면 재전송을 하는데 이건 하지 않습니다.

왜냐하면 더 비용이 많이 들거든요

 

UDP의 일과성 응용 / 파일 전송에의 활용

일시성 - 한 두 개의 메시지만 보낼 경우

ex) dns, dhcp 같은 것들

이것들은 udp를 씁니다.

 

제어나 전송을 응용에서 한다면 udp를 쓸 때도 있습니다.

 

UDP와 응용 계층의 구성

tcp와 유사합니다.

 

port를 통해서 응용 프로세스를 분리합니다.

 

메시지는 Max와 parser에 담깁니다.

 

클라이언트는 사용하지 않은 포트를 사용하고

dns는 53번

dhcp는 67번을 씁니다.

 

UDP용 well known 포트번호

67 - 부팅될 때 사용하는 프로토콜입니다.

bootp는 현재 사용하지 않습니다.

 

snmp - 망관리 프로토콜입니다.

snmp trap - 긴급 망관리입니다.

 

 

UDP프레임 형식

굉장히 간단합니다.

제어가 없기 때문이죠

 

udp 프로토콜이면 17번이라고 패킷에 적습니다.

checksum이 잘못되면 그냥 버립니다.

 

UDP의 첵섬 계산 영역

ip헤더에 중요한 부분을 같이 체크섬에 넣어서 계산합니다.

 

DHCP(Dynamic Host Configuration Protocol)

동적으로 ip를 받기 때문에 우리는 ip를 설정하지 않았습니다.

편리한 것도 있지만 ipv4가 부족하기 때문에 구동되는 장비에 ip를 할당합니다.

 

ip주소를 알려주는 프로토콜들 

RARP,

  • 디스크가 없어서 ip주소를 담을 수 없었습니다.
  • 부팅되자마자 mac주소를 줘서 ip주소를 받아옵니다.

BOOTP,

  • 부팅될 때마다 필요한 정보를 가져옵니다.
  • ip뿐만 아니라 dns주소 등도 가져옵니다.

DHCP

  • ip주소 풀을 운영합니다.
  • 요청이 있다면 하나씩 할당해 줍니다.

 

 

DHCP의 동작 절차

서버는 67번 포트

클라이언트는 68번 포트입니다.

 

  • 클라이언트 부팅되자마자 DHCP Discover 메시지를 뿌립니다.
  • 서버는 "내가 줄 수 있는 ip는 ~이거이고 임대기간이 ~이 정도야"라고 메시지를 줍니다.
  • 클라이언트는 "니가 준 ip 이거 쓸게: 보냅니다.
  • 서버는 ACK를 보냅니다.

만약 ACK가 안 오면 처음부터 다시 합니다.

 

임대 기간을 두는 이유?

기계가 "나 끌게"라고 메시지를 안 주기 때문입니다.
임대기간이 50% 지나면 서버에게 다시 달라고 요청합니다.
이게 안 오면 회수합니다.

 

DHCP/BOOTP 프레임 형태

BOOTP와 유사합니다.

 

옆에 있는 건 byte입니다.

b-flag = 1로 설정되면 "브로드 케스트로 응답을 보내주세요" 하는 것입니다.

왜냐하면 ip가 없기 때문에 유니케스트가 불가능하기 때문입니다.

 

tlv 형식입니다.

 

DHCP/BOOTP의 옵션 종류

태크 때고 value의 length만 봅니다.

 

 

[실습 1] DHCP 설치 및 동작 실험

ip를 받아오려고 하면 

주변의 인터넷 접속을 끊고 실행해야 합니다.

라우터가 서버 역할을 하기 때문입니다.

 

dhcp 서버를 통해서 다른 머신들이 ip를 받을 수 있습니다.

 

 

[실습 1] DHCP 설치 및 동작 - 실험 클라이언트

클라이언트에서 네트워크를 사용 안 함으로 했다가 사용한다고 바꾸면 됩니다.

 

또 다른 리눅스가 vmware에 있다면 step1의 명령어를 치면 됩니다.

wireshark로 dhcp 메시지를 캡처해봅시다.

 

 

TFTP의 활용 예

구성정보나, 라우터의 os 이미지를 담아 둡니다.

 

하드 디스크가 없는 시스템(라우터, 스위치) 일 경우 사용합니다.

파일을 요청해서 파일을 받아오는 형태입니다.

 

udp 안에 tftp 메시지가 들어가 있습니다.

 

TFTP의 메시지 형식

opcode가 실제로 명령하는 곳입니다.

파일명도 주어집니다.

아스키코드로 지정할지 octet으로 지정하지도 정합니다.


파일이 큰 경우 쪼개져서 갑니다.

opcode가 3번이고 block으로 쪼게 져서 전송됩니다.

이때 stop-and-wait로 보내고 확인받고 보내고 확인받고를 해서흐름 제어를 합니다.

 

error인 경우 5번이 되고 에러 메시지가 전송됩니다.

 

option ACK은 최대 블록 크기가 512바이트입니다.

파일이 1000 바이트면 2개의 블록으로 쪼개져서 갑니다. 

그러면 512바이트로 쪼개져서 가는 것을 알려줍니다.

 

TFTP 파일 read 시 TFTP 패킷의 흐름도

512바이트를 첫 번째로 보내고

50바이트를  두 번째로 보냅니다.

 

TFTP 파일 write 동작에 의한 패킷 흐름도

69번은 커맨드를 받는 포트입니다.

 

블록을 보내고 블록 번호를 확인해 주고

512바이트가 아니니 마지막 블록이라는 것을 눈치챕니다.

728x90

'Computer Science > 네트워크' 카테고리의 다른 글

11. WAN 기술 (PPP, ISDN, Frame Relay)  (0) 2021.12.02
ACL (Access ControlList)  (0) 2021.12.01
8. TCP 응용프로토콜(Telnet , FTP)  (0) 2021.11.25
스위칭 2  (0) 2021.10.30
VPN이란 무엇인가?  (0) 2021.08.21