[TIL] TCP / UDP

sooyoung choi·2024년 1월 23일
0

CS

목록 보기
12/21

TCP / UDP ?

  • 웹 어플리케이션의 신뢰성, 성능 개선을 하는 중요한 역할을 해준다.

TCP / IP 모델

Application Layer

  • HTTP, 브라우저

Transport Layer

  • TCP, UDP

Internet Layer

  • IP

Network Access Layer

  • 이더넷

Transport Layer

  • TCP, UDP
  • Endpoint 간 신뢰성 있는 데이터 전송을 담당하는 계층
  • 신뢰성: 데이터를 순차적, 안정적으로 전달한다.
  • 전송: 포트 번호에 해당하는 프로세스에 데이터를 전달한다.

Transport Layer가 없다면?

  • 순차 전송이 원활하지 않는다.
  • Flow 문제
    - 원인: 송수신자 간 데이터 속도 처리 차이
    • 수신자 측에서 처리할 수 있는 데이터량이 초과된다.
  • 혼잡 문제: 네트워크의 데이터 처리 속도 혼잡해질 수 있다.
  • 즉, 데이터의 손실이 발생하게 된다.

TCP

  • Transmission Control Protocol
  • 신뢰성 있는 데이터 통신을 가능하게 해주는 프로토콜
  • Connection 연결 가능하다 -> 3 Way handshake(양방향 통신, 1:1)
  • 패킷에 대한 응답을 해야하기 때문에 시간 지연, CPU 소모 등 성능이 낮아진다.

패킷?

  • 인터넷 내에서 데이터를 보내이 위한 라우팅을 효율적으로 하기 위해 데이터를 여러 조각들로 나눠 전송하게 되는데 이 조각들이 바로 패킷!

TCP 동작 과정

  1. 소켓 생성
  2. 3 Way Handshake 연결 설정
  3. 데이터 송, 수신
  4. 4 Way Handshake 연결 해제

UDP

  • User Datagram Protocol
  • 데이터를 데이터그램 단위로 처리하는 프로토콜

데이터그램?

  • 독립적인 관게를 지니는 패킷
  • TCP는 연결형이지만, UDP는 비연결형 프로토콜이다.
  • 연결을 하기 위해 할당되는 논리적인 경로가 없어 각각의 패킷은 다른 경로로 전송되고 독립적인 관계를 지니게 되며, 다른 경로로 독립적으로 처리하게 된다.
  • 정보를 주고 받을 때 보내거나 받는 절차를 거치지 않는다.
  • UDP 헤더에 Checksum 필드 통해 최소한의 오류만 검출
  • 신뢰성이 낮다.
  • TCP보다 속도가 빠르다.
  • 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결될 수 있다.

신뢰성이 필요한 경우 TCP, 성능 향상이 필요한 경우 UDP

참고 자료
https://mangkyu.tistory.com/15
https://www.youtube.com/watch?v=ikDVGYp5dhg![](https://velog.velcdn.com/images/choisooyoung-dev/post/1f61d0d2-d3dd-4045-8712-b090e919aacd/image.png)

0개의 댓글