Network
[Network] TCP와 UDP의 차이
KMSEOP
2020. 8. 31. 21:44
728x90
TCP란?
- Transmission Control Protocol의 약어
- 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로 장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스
- 데이터를 메시지(세그먼트 단위의 블록)로 보내기 위해 IP와 함께 사용하는 프로토콜
특징
- 3-way handshaking을 통해 연결을 설정
- 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고 실제로 데이터 전달이 시작하기전에 한쪽이 다른쪽이 준비되었다는 것을 알 수 있음
- Client -> Server : TCP SYN
- Server -> Client : TCP SYN ACK
- Client -> Server : TCP ACK
- 4-way handshaking을 통해 연결의 해제
- Client -> Server : TCP FIN
- Server -> Client : TCP ACK
- Server -> Client : (데이터를 마저 전송하고)TCP FIN
- Client -> Server : TCP ACK
연결형 서비스
- 3-way handshaking을 통해 연결을 설정
- 데이터 처리 속도를 조절하여 수신자 Buffer의 Overflow 방지
흐름 제어
- 네트워크 내의 패킷 수가 과다하게 증가하지 않도록 방지
혼잡 제어
- 에러 발생시 재전송
- ACK 값이 수신되지 않으면 재전송
높은 신뢰성 보장
- 전이중(Full-Duplex) : 전송이 양방향으로 동시에 일어날 수 있음
- 점대점(Point to Point) : 연결이 정확히 2개의 종단점을 가지고 있음
- 멀티캐스팅이나 브로드캐스팅을 지원하지 않음
전이중, 점대점 방식
UDP란?
- User Datagram Protocol의 약어
- 데이터를 데이터그램 단위로 처리하는 프로토콜
특징
- 연결을 위해 할당되는 논리적인 경로가 없음
- 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 가짐
- TCP보다 빠름
비연결형 서비스
- 데이터 전송에 대한 보장을 하지 않음
- 패킷 손실이 발생할 수 있음
비신뢰성
- Broadcast, Multicast 지원
TCP와 UDP 비교
TCPUDP
연결형 프로토콜 | 비연결형 프로토콜 |
혼잡제어, 흐름제어 | 혼잡제어, 흐름제어 지원 X |
상대적으로 느림 | 상대적으로 빠름 |
신뢰성 보장 | 신뢰성을 보장하지 않음 |
TCP 패킷은 세그먼트 | UDP 패킷은 데이터 그램 |
1:1 통신 | 1:1, 1:N, N:N 통신 |
728x90