CS/network

TCP vs UDP

superbono 2021. 5. 7. 21:25

사실 TCP/UDP의 차이를 명료하게 정리하고자 글을 다시 쓴다.

https://www.guru99.com/tcp-vs-udp-understanding-the-difference.html#:~:text=KEY%20DIFFERENCES%3A,UDP%20uses%20no%20handshake%20protocols

 

* TCP(Transmission Control Protocol)?

이름에서도 알 수 있듯 전송 제어 프로토콜이다. 인터넷을 사용하는 모든 통신의 기본적인 프로토콜이며 신뢰성 있는 데이터 전송을 보장한다. 연결 지향형(connection-oriented) 서비스를 제공한다. 전송 계층(transport layer)에서 동작한다. 다른 타입의 컴퓨터 간에 연결을 설정하는데 도움이 된다. 운영 체제와는 상관 없이 독립적으로 작동하며 많은 라우팅 프로토콜을 지원한다. 

 

- 동작

3 way handshake 방식을 통해 established 되며 연결이 설정된 뒤 데이터 전송이 시작된다. 

 

- 특징

- 전송(수신)확인

- 재전송

- 네트워크가 혼잡할 경우 지연할 수 있음

- 에러 탐지가 용이함 

 

- TCP의 단점

  1. 브로드캐스트 또는 멀티 캐스트 전송에는 사용할 수 없다. 
  2. 느리다...

 

* UDP(User Datagram Protocol)?

데이터그램 지향 프로토콜이다. 브로드 캐스트 및 멀티 캐스트 유형의 네트워크 전송에 사용된다. 비연결형(connection-less) 서비스를 제공한다. 역시 전송계층에서 동작한다. 네트워크를 통한 전송 및 멀티 캐스팅 전송을 위한 패킷 브로트 캐스트와 호환된다. 연결 기반 통신 모델이 아니어도 통신할 수 있다.-> 빠른 시작 가능 (3 WAY HANDSHAKE 과정 안 거쳐도 되니까)

 

- 동작

데이터그램 간의 전후관계를 고려한 전송을 하지 않는다. 따라서 hand shaking 방식을 사용하지 않는다. 그 얘기는 수신 확인도 하지 않는다는 이야기이다. 또한 에러 체크와 오류를 바로잡는걸 중요하게 생각하지 않기 때문에 오류 제어 기능도 없다.  

 

- 특징

- 지연이 적다

- 많은 양을 보낼 수 있다.

 - 데이터 손실의 가능성이 있다.

 - 소구모 트랜잭션이 가능하다.

 

- UDP의 단점

  1. UDP는 오류가 발생한 패킷을 버릴 뿐 그 오류를 고치지 않기 때문에 패킷이 두번 전달 되거나 전달되지 않는 경우도 생길 수 있다. 또한 순서대로 전송되지 않을 수도 있다. 
  2. 라우터는 충돌하더라도 다시 전송하지 않는다.
  3. 네트워크 혼잡 제어 및 흐름 제어가 없어서 그런거 구현하려면 사용자가 알아서 해야한다.

 

 

* TCP와 UDP의 차이점

 <주요 차이점>

  • TCP는 연결 지향 프로토콜인 반면 UDP는 비연결형 서비스를 지원하는 프로토콜이다. 
  • TCP 속도는 느리고 UDP 속도는 빠르다.
  • TCP는 SYN, SYN-ACK, ACK와 같은 핸드셰이크 프로토콜을 사용하는 반면, UDP는 사용하지 않는다.
  • TCP는 오류 검사, 복구를 하지만 UDP는 오류 검사를 하나 잘못된 패킷을 삭제한다.
  • TCP는 상대적으로 무겁고 UDP는 가볍다.
  • TCP에는 acknowledgment (승인) 세그먼트가 있지만 UDP에는 없다. 

 

 

 

'CS > network' 카테고리의 다른 글

Load Balancing(로드 밸런싱)  (0) 2021.05.09
URI와 URL, URN  (0) 2021.05.08
TCP 3 way handshake  (0) 2021.05.02
IPv6 (Internet Protocol version 6)  (0) 2021.04.25
반 이중(Half Duplex) 방식 vs 전 이중(Full Duplex) 방식  (0) 2021.04.23