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

개요

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 패킷으로 인해 네트워크 상에 부하가 있을 수 있음.

관련 글

지식 공유4분 읽기

IDC 엔지니어를 위한 OSI 7계층 트러블슈팅 실전 랩!

개요 서버를 설치하고, 인프라를 구축하고, 장애를 해결하는 모든 업무의 근간에는 바로 OSI 7계층 이라는 강력한 나침반이 있습니다. 이른으로만 들었던 OSI 7계층을 실제 업무에서 어떻게 활용할 수 있는지, 두 가지 시나리오를 기반...

네트워크