ocean

3-4. TCP와 UDP 본문

현대오토에버 모빌리티 SW 스쿨 - 클라우드/Network

3-4. TCP와 UDP

Leyeun_000 2026. 1. 28. 19:19

4계층의 목적

  • 목적지 단말 안에서 여러 애플리케이션 프로세스 중 통신해야 할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해서 원래 데이터를 잘 만들어내는 것

 

TCP와 UDP의 차이점 🌟 🌟 🌟

TCP UDP
Connection Oriented(3-way handshake) Connectionless
오류 제어 수행 오류 제어 수행X.
흐름 제어(속도 조절) 수행 흐름 제어 수행 X.
Unicast Unicast, Multicast, Broadcast
FullDuplex(동시에 주고 받기 가능) HalfDuplex (동시에 주고 받기는 안됨. 어느 한 순간에는 받기만 하거나 주기만 해야 함.)
데이터 전송 실시간 트래픽 전송
  • TCP는 Stream 통신이라고도 함. UDP는 Datagram이라고도 함.

 

 TCP

  • 세션을 안전하게 연결 & 데이터 분할 & 분할된 패킷이 잘 전송되었는지 확인

  • 1번을 수신하고 ACK을 보낼 때, 1이 아니라 2를 전송하는 이유?
    → 1을 잘 받았으니 이제 2를 보내달라는 뜻!

윈도우 사이즈와 슬라이딩 윈도우

  • 패킷을 하나씩 전송하고 응답을 기다리면 거리가 먼 경우 왕복 지연 시간이 늘어남.
  • 윈도우 사이즈 : 한꺼번에 보내는 패킷의 개수
  • 윈도우 사이즈는 동적으로 변하는데 데이터 유실이 발생하면 윈도우 사이즈를 줄이고 그렇지 않으면 하나씩 늘려감.

3way handshake

  • TCP에서는 통신 시작 전에 사전 연결 작업을 진행
  • 동작

  1. 서버는 클라이언트의 접속을 받아들일 수 있는 LISTEN 상태로 대기
  2. 클라이언트에서 통신을 시도할 때 SYN 패킷을 보냄. → 클라이언트의 상태 : SYN-SENT
  3. SYN 패킷을 받은 서버는 SYN-RECEIVE 상태로 변경되고 SYN/ACK으로 응답.
  4. 이 응답을 받은 클라이언트는 ESTABLISHED 상태로 변경되고 그에 대한 응답을 서버로 전송.
  5. 서버에서도 이 응답을 받고 ESTABLISHED 상태로 변경됨.
  6. 이제 서버와 클라이언트는 통신할 준비 완료

 

UDP

  • 데이터 전송을 보장하지 않는 프로토콜. 제한된 용도로만 사용
  • 사용
    • 데이터를 전송하는데 일부 데이터가 유실되더라도 시간에 맞추어 계속 전송하는 것이 중요한 경우
      ex. 화상회의 시스템, 실시간 스트리밍, 음성 데이터 🌟
      • 같은 동영상 스트리밍이더라도 넷플릭스나 유튜브같이 시간에 민감하지 않은 단일 시청자를 위한 연결은 TCP 사용
    • 사내방송, 증권 시세 데이터 전송에 사용되는 멀티캐스트처럼 단방향으로 다수의 단말과 통신해 응답을 받기 어려운 환경.
    • 연결 확립은 TCP를 사용하고 애플리케이션끼리 준비되면 실제 데이터만 UDP를 이용하는 경우도 존재