TCP와 UDP
네트워크 통신을 할 때 표준화 모델인 OSI 7계층 중에서 전송 계층에서 TCP, UDP 프로토콜이 사용됨
** 전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층
TCP : 연결형 서비스로 3-way handshake 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만, UDP보다 속도가 느리다는 단점이 있음
- 연속성보다 신뢰성이 있는 전송이 중요할 때 사용, 예를들면 파일 전송
UDP : 비연결형 서비스로 클라이언트와 서버간의 연결이 보장되지 않아서 신뢰성이 떨어지는 단점이 있음, 데이터 수신 여부를 확인하지 않기 때문에 속도가 빠르다는 장점이 있음
- 신뢰성보다는 연속성이 중요한 실시간 스트리밍 서비스에 사용
![](https://velog.velcdn.com/images/thsruddl77/post/0a315acd-b0f9-46ee-91d5-69e5c897358f/image.png)
> TCP(Transmission Control Protocol)
- 연결형(connection-oriented) 프로토콜
- 데이터 경계를 구분하지 않음, 바이트 스트림(byte-stream) 서비스
- 신뢰성 있는 통신을 위해 사용하는 프로토콜
- 데이터의 순서 유지를 위해 각 바이트마다 번호를 부여
- 높은 신뢰성을 보장하지만, UDP보다는 속도가 느림
- 서버와 클라이언트가 3-way handshake로 연결을 하고 4-way handshake로 연결 해제하며 1:1로 통신을 함
- 데이터 흐름제어와 혼잡제어가 이루어짐
- 흐름 제어 : 수신자 버퍼 오버플로우 방지
- 혼잡 제어 : 네트워크 내 패킷 수가 과도하게 증가하는 현상 방지
> UDP(User Datagram Protocol)
- 비연결형(connectionless) 프로토콜
- 데이터 경계를 구분, 데이터그램(datagram) 서비스
- 비신뢰적인 데이터 전송
- 손상된 데이터 재전송 하지 않고 데이터 순서 유지 작업 하지 않음
- 신뢰성이 낮지만, TCP보다 속도가 빠르고 네트워크 부하가 적음
- 데이터 수신 여부를 확인하지 않음
- 스트리밍같은 서비스에 주로 사용
- 1:1(unicast), 1:N(broadcast), N:M(multicast)으로 연결이 가능
| TCP 와 UDP 비교
![](https://velog.velcdn.com/images/thsruddl77/post/2430227c-cac5-4524-b04d-25a4c5e388a6/image.png)
참고