CS 공부

TCP / UDP

신동편 2023. 7. 26. 14:02
728x90

TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)는 둘 다 인터넷 프로토콜 스택의 중요한 프로토콜로, 데이터를 전송하는 데 사용된다.


공통점:

 

전송 계층 프로토콜: TCP와 UDP는 모두 전송 계층 프로토콜로, OSI 모델에서 4번째 계층에 해당한다. 이들은 네트워크에서 데이터를 보내고 받는 역할을 담당한다.

 

패킷 기반 통신: TCP와 UDP 모두 데이터를 패킷 단위로 전송한다. 데이터를 더 작은 조각들로 분할하여 전송하며, 이러한 패킷들은 독립적으로 노드 간에 교환된다.


 

차이점:

 

연결 지향성:

  • TCP: 연결 지향 프로토콜이다. 데이터를 전송하기 전에 논리적인 연결을 성립한 후에 데이터를 교환한다. 3-way handshake를 통해 연결을 설정하고, 데이터 전송 후에는 4-way handshake를 통해 연결을 해제한다. 이로 인해 신뢰성이 높은 데이터 전송이 가능하다.
  • UDP: 비연결성 프로토콜이다. 논리적인 연결 설정 없이 데이터를 보내기 때문에 데이터 전송에 대한 보장이 없다. 그러나 연결 설정 및 해제에 필요한 오버헤드가 없어 빠른 속도로 데이터를 전송할 수 있다.

 

신뢰성:

  • TCP: 신뢰성이 높은 프로토콜이다. 데이터 전송 시 확인 응답과 오류 제어를 통해 데이터 손실을 최소화하고, 순서를 보장하여 정확한 데이터 전송을 보장한다.
  • UDP: 신뢰성이 낮은 프로토콜이다. 데이터를 보낼 때 확인 응답이나 오류 제어가 없기 때문에 데이터 손실이 발생할 수 있고, 순서가 바뀔 수 있다. 그러나 실시간 통신이 필요한 애플리케이션에서는 높은 성능을 제공할 수 있다.

 

트래픽 형태:

  • TCP: TCP는 흐름 제어와 혼잡 제어를 지원하여 대역폭을 조절하고 네트워크의 혼잡을 방지한다. 이로 인해 데이터 전송이 안정적이지만, 이러한 기능 때문에 일정한 오버헤드가 발생할 수 있다.
  • UDP: UDP는 트래픽을 제어하지 않기 때문에 TCP보다 오버헤드가 적다. 그러나 네트워크 혼잡 시 데이터 손실이 발생할 수 있다.

 

오류 처리:

  • TCP: TCP는 데이터 전송 시 오류가 발생하면 재전송을 요청하여 정확한 데이터 전송을 보장한다.
  • UDP: UDP는 오류 발생 시에도 재전송을 요청하지 않고, 손실이 발생할 수 있다.

 

TCP와 UDP는 각각의 특성에 따라 적합한 상황이 다르다. TCP는 신뢰성이 중요하고 데이터 전송의 순서가 보장되어야 하는 애플리케이션에 적합하며, UDP는 실시간 통신이 필요하고 간단한 데이터 교환에 적합한 경우가 많다.

728x90

'CS 공부' 카테고리의 다른 글

트랜잭션 (Transaction)  (0) 2023.07.26
프로세스  (0) 2023.07.06
CPU / 메모리  (0) 2023.06.24