[TIL] TCP와 UDP

Cherry Jin·2024년 1월 22일
0

sparta_내배캠

목록 보기
42/53
post-thumbnail

TCP(Transmission Control Protocol)

TCP는 신뢰성 있는 데이터 전송을 보장한다. 이는 데이터가 순서대로, 오류 없이 손실 없이 도달하는 것을 의미한다.

3-way Handshacking

  • TCP 연결성의 신뢰성을 만드는 데에 중요한 역할을 한다.
  • 연결 설정: 클라이언트는 서버에게 SYN(Synchronize)패킷을 보내 연결을 요청한다. 서버는 SYN-ACK(Synchronize-Acknowledgment) 패킷으로 응답하여 요청을 수락한다. 클라이언트는 ACK패킷을 보내 연결을 확립한다.
  • 양쪽 모두 데이터 전송 준비가 되었음을 확인하고, 신뢰할 수 있는 연결을 설정한다.

흐름 및 혼잡 제어

  • TCP는 네트워크의 혼잡 상태와 데이터 수신 속도를 고려하여 데이터 전송 속도를 조절한다.

UDP(User Datagram Protocol)

  • UDP는 신뢰성있는 데이터 전송을 보상하지 않는다.
  • 데이터가 손실되거나 순서가 뒤바뀌어도 재전송하지 않는다.
  • 연결 설정 없이 데이터를 전송하여 초기 설정 지연이 없다.
  • UDP는 TCP보다 오버헤드가 적어서 더 빠른 데이터 전송을 가능하게 한다.

TCP와 UDP의 신뢰성 차이

  • 3-way hanshaking과 같은 연결 설정과정, 흐름 제어, 혼잡 제어, 데이터 재전송 등의 메커니즘으로 인해 TCP의 신뢰성이 확립된다. 반면 UDP는 이러한 과정을 생략함으로써 빠른 데이터 전송이 가능한 반면에 신뢰성이 낮아지는 것이다.

  • TCP는 이메일, 웹페이지 로딩 등의 신뢰성이 중요한 애플리케이션에 적합하다. UDP는 실시간 스트리밍, 온라인 게임 등 속도가 중요한 경우에 사용된다.

오버헤드

오버헤드란 어떤 작업을 수행하는 데에 필요한 추가적인 시간, 메모리, 기타 자원을 의미한다.

profile
풀스택이 되버린 주니어 개발자

0개의 댓글