TCP/UDP

김삿갓의싱잉랩·2023년 8월 28일

✨ Transport Layer

Endpoint간 신뢰성있는 데이터 전송을 담당하는 계층

  • 신뢰성 : 데이터를 순차적, 안정적으로 전달

  • 전송 : 포트번호에 해당하는 프로세스에 데이터를 전달

전송계층이 없다면?

  • 데이터의 순차 전송 원활히 X

  • Flow(흐름 문제) : 송수신자간의 데이터 처리 속도 차이, 수신자가 처리할 수 있는 데이터 양을 초과

  • Congestion(혼잡 문제) : 네트워크의 데이터 처리 속도

✨ TCP

신뢰성 있는 데이터 통신을 가능하게 해주는 프로토콜

  • Connection 연결 (3-way-handshake) 양방향 통신

  • 데이터의 순차 전송을 보장

  • Flow Control

  • Congestion Control

  • Error Detection

  • 매번 Connection을 연결해서 시간 손실 발생

  • 패킷을 조금만 송신해도 재전송

✅ TCP의 3-way handshake

  • SYN 비트를 1로 설정해 패킷 송신

  • SYN ACK비트를 1로 설정해 패킷 송신

  • ACK 비트를 1로 설정해 패킷 송신

  • Client가 패킷 송신

  • Server에서 ACK 송신

  • ACK를 수신하지 못하면 재전송 (신뢰성 있는 통신)

✅ TCP의 4-way handshake

  • 데이터를 전부 송신한 Client가 FIN 송신
  • Server가 ACK 송신
  • Server에서 남은 패킷 송신
  • Server가 FIN 송신
  • Client가 ACK 송신

✨ UDP (User Datagram Protocol)

TCP보다 신뢰성이 떨어지지만 전송 속도가 일반적으로 빠른 프로토콜

  • Connectionless

  • Error Detection

  • 비교적 데이터의 신뢰성이 중요하지 않을 때 사용 (ex 영상 스트리밍)

profile
시스템 개발에 시간을 아끼지 말자

0개의 댓글