Profile picture

[네트워크] 네트워크 프로토콜 정리 (TCP,UDP,DHCP)

JaehyoJJAng2023년 03월 05일

개요

6개의 프로토콜(TCP,UDP,ICMP,ARP,SNMP,DHCP)을 정리해보고자 한다.
image


TCP

  • Transmission Control Protocol
  • OSI 7 Layer에서 4계층에 속하는 프로토콜로서 컴퓨터 프로세스 간 데이터를 순서대로 에러 없이 교환할 수 있는 프로토콜이다.

image
<출처: http://www.ktword.co.kr/test/view/view.php?no=1889>


사용 목적

기존에 사용하던 회선 교환 방식이 패킷 교환 방식으로 전환되면서 많은 문제점들이 발생했었다.

경로가 정해져있는 회선 교환 방식과는 달리 경로가 정해져 있지 않은 패킷 교환 방식은 중간에 데이터가 유실되거나 딜레이 되는 등 신뢰성이 떨어진다는 문제점이었다.

이러한 점들을 보장하고 안정적으로 네트워크 통신이 될 수 있게 해주는 통신 규약이 TCP이다.


연결 시 동작 방식 (3-way Handshake)

  • 1. Client는 Server와 연결을 위해 SYN 패킷을 보낸다.
  • 2. Client의 연결 요청(SYN)에 대해 수신 확인 응답(ACK)과 클라이언트에게로 연결 요청(SYN)을 한다.
  • 3. Server로의 연결 요청(SYN)을 받은 Client는 수신 확인 응답(ACK)을 보내어 최종적으로 연결이 수립된다.

image


연결 해제 시 동작 방식 (4-way Handshake)

  • 1. Client가 Server에게 연결을 종료하겠다는 FIN flag를 전송.
  • 2. Server는 확인 메시지를 보내고 통신이 끝날 때까지 기다림.(CLOSE_WAIT)
  • 3. Server가 통신이 끝나면 Client에게 끝났다는 FIN flag를 전송함.
  • 4. Client는 수신 확인 되었다는 ACK 메시지를 보내면서 통신을 종료하게 됨.

image


TCP Control Flag

  • URG: 긴급한 데이터인지 표기
  • ACK: 전송 확인 응답/승인
  • PSH: 수신처리 이후, 상위 프로세스로 처리
  • RST: 강제 종료
  • SYN: 전송 캐시
  • FIN: 정상 종료

특징

  • 연결 지향 프로토콜 (Connection Oriented Protocol)
    • 가상회선 방식의 스트림 기반 전송으로 논리적으로 데이터의 전송 순서를 보장해줌.
  • 신뢰할 수 있는 프로토콜 (Reliable Protocol)
    • 흐름 제어: stop & wait 기법, Sliding Window 방식
    • 혼잡 제어: 혼잡발생 시 전송률 최소화

장단점

  • 1. 연결지향적으로 안정적이고 높은 신뢰성 보장.
  • 2. 연결지향적이다보니 UDP에 비해 많은 패킷이 발생하여 속도가 느림.

UDP

  • User Datagram Protocol
  • OSI 7 Layer에서 4계층에 속하는 프로토콜로서 데이터를 Datagram 단위로 처리하는 통신 프로토콜

image
<출처>


TCP와 UDP의 통신 방식 차이

image
<출처: https://coconuts.tistory.com/33>

  • TCP는 사전에 3-way Handshake를 통해 서로 간에 신뢰 있는 데이터 전송을 보장함.
  • UDP는 요청이 들어오면 상대방의 수신 응답 여부 상관 없이 일단 보내는 Best Effort 방식

사용 목적

  • TCP는 연결지향으로써 신뢰성 있는 통신 프로토콜이지만, 실시간 스트리밍 서비스에서는 속도 면에서 문제가 많다.
  • TCP의 흐름 제어 기능으로 데이터 전송 양이 고정되어 있기 때문에 스트리밍 서비스 환경에서는 적합하지 못하다. 따라서 UDP 프로토콜이 자주 사용된다.

특징

  • 1. TCP와 다르게 비연결 지향형 서비스
    • 실시간 데이터를 전송해야하거나 재전송이 필요 없는 상황에 적합.
    • 단순 데이터 요청/응답만 필요한 경우에 사용

장단점

  • TCP에 비해 속도 우수 (헤더가 단순하여 헤더 처리에 시간이 들지 않음)
  • 비연결지향형이라 TCP에서 제공하는 흐름제어, 혼잡제어, 순서제어 등의 기능이 없음.
  • 보안 취약 (Sniffing을 통해 전송 내용 엿보거나, Spoofed 상태의 봇을 사용하여 UDP Flooding, DDoS 공격 등이 들어올 수 있음)

DHCP

  • Dynamic Host Configuration Protocol
  • 네트워크 안의 컴퓨터 IP와 네임서버주소, 게이트웨이 주소를 동적으로 할당하기 위한 프로토콜이다

사용 목적

  • 기존에는 네트워크 설정 시 관리자가 직접 시스템적으로 클라이언트의 네트워크 설정을 해줘야 했다.
  • 하지만 네트워크가 점점 커져감에 따라 클라이언트마다 네트워크 설정을 해주기가 부담스러워졌다.
  • 그래서 DHCP가 개발되었고 이는 빠르게 클라이언트의 네트워크 설정이 가능하게 되어 최종적으로 자원의 효율적 사용이 가능하게 되었다.

구성 요소

image
<출처: https://lhh3520.tistory.com/285>

  • 1. DHCP Client
    • 새로운 IP를 할당받기 위해 DHCP 서버에 요청
  • 2. DHCP Server
    • Client로부터 IP 할당 요청이 들어오면 설정된 IP 대역 중 사용하지 않는 대역을 Client에게 부여.
  • 3. DHCP Protocol
    • IP와 TCP/IP 프로토콜 기본 설정을 개별 클라이언트에게 자동으로 할당하는 역할

DHCP State Diagram

image
<출처: http://www.ktword.co.kr/word/abbr_view.php?m_temp1=2590>

  • INIT: Client는 DHCP 서버를 찾기 위해 Broadcast 메시지를 보냄.
  • Selecting: DHCP 서버는 Client에게 응답하고, Client는 응답한 DHCP 서버를 선택
  • Requesting: Client는 서버에게 요청을 보냄.
  • Bound: 서버는 요청에 대한 응답(ACK)을 보냄.
  • Renewing: Client가 서버로부터 받은 IP의 임대시간이 어느정도 지나, 재연장(갱신)을 받고자할 때 발생.
    • 이 경우 Selecting의 과정을 거치지 않고 바로 Bound 과정을 거침

동작 방식

  • 1. DHCP Discover
    • Client가 Broadcast 메시지를 보내 DHCP 서버를 검색.
  • 2. DHCP Offer
    • DHCP 서버가 자신의 IP와 할당 가능 IP를 Client에게 제공.
  • 3. DHCP Request
    • DHCP 서버를 찾은 Client가 Server에게 IP 할당을 요청
  • 4. DHCP ACK
    • Server는 Client에게 IP 할당.

image
<출처: https://jwprogramming.tistory.com/35>


장단점

  • 편리하게 IP 관리 가능
  • 중복된 IP 할당을 피할 수 있음
  • DHCP 서버를 찾기 위한 Broadcast 패킷으로 인해 네트워크 상에 부하가 있을 수 있음.

Loading script...