컴퓨터공학 공부

컴퓨터공학 공부 다시 시작하기 23주차-TCP 프로토콜/슬라이딩 윈도우 및 혼잡 제어 알고리즘 이해, UDP 프로토콜 이해(네트워크)

개발학생 2025. 4. 2. 13:59
반응형

1. TCP 프로토콜/슬라이딩 윈도우 및 혼잡 제어 알고리즘 이해

TCP 제어

  • 네트워크 트래픽에 따른 효율적/신뢰적 송신을 위한 제어 알고리즘 적용

흐름 제어(Flow Control): 슬라이딩 윈도우(Sliding Window)

  • 매번 ACK를 기다리지 않고 여러 패킷을 연속해서 송신하기 위해,
    각 컴퓨터의 윈도우 사이즈 확인 후 윈도우 사이즈만큼 ACK없이 연속해서 송신

*TCP 윈도우 사이즈 설정

혼잡 제어 알고리즘: Congestion Window

  • 송신 제어를 위한 윈도우는 2개 
    • Receiver Window(RWND): 흐름 제어(Sliding Window)에서 활용
    • Congestion Window(CWND): 네트워크 혼잡 제어를 위해 활용
  • 송신 측 최종 윈도우 크기 = min(RWND, CWND)

Congestiong Window 초기값: 1MSS

MSS = MTU - (IP헤더길이) - (TCP헤더길이)
  • MTU(Maximum Transmission Unit): 한 번 전송할 때 보낼 수 있는 최대 단위(ifconfig/ipconfig 명령어로 확인 가능)
    보통 1500 - 20 - 20 = 1460 bytes 

혼잡 제어: AIMD(Additive Increase/Multicative Decrease)

  • 가장 기본이 되는 알고리즘 
  • 처음에는 CWND=1인데,
    ACK 도착(패킷 전송 성공) 시 CWND = CWND + 1
    ACK 도착하지 않음(패킷 전송 실패) 시 CWND = CWND / 2

혼잡 제어: 느린 시작(Slow Start) 및 혼잡 회피(Congestion Avoidance)

  • AIMD의 느린 초기 송신을 빠르게 하기 위한 기술
  • 느린 시작(Slow Start): 처음에는 CWND=1인데, 
    ACK 도착(패킷 전송 성공) 시 CWND = CWND의 2배
    ACK 도착하지 않음(패킷 전송 실패) 시 CWND = 1(초기값)
  • 혼잡 회피(Congestion Avoidance): CWND가 일정 크기에 도달하면, ACK 도착(패킷 전송 성공) 시 CWND = CWND + 1

2. UDP 프로토콜 이해

UDP

  • 사용자 데이터그램 프로토콜(User Datagram Protocol)
  • 데이터 효율성 중시(일반적으로 TCP보다 빠름)
  • 헤더가 단순함

  • UDP와  TCP 비교
  UDP TCP
연결 설정 없음 3-way handshake
연결 해제 없음 4-way handshake
혼잡 제어 없음 Sliding Window, Slow Start
데이터 신뢰성 없음 데이터 송수신 확인(ACK)

 

UDP의 장점

  • 데이터 유실이 일부 있어도 문제 없고, 빠른 전송이 필요한 서비스에서 많이 사용됨(예: 동영상 스트리밍 등)
  • 브로드캐스팅 지원: 동일 네트워크에 연결된 모든 컴퓨터에 데이터 송신 가능 
반응형