전송 계층 프로토콜
TCP (Transmission Control Protocol)
- 전송을 제어하는 규약
연결형 지향적 프로토콜
- IP는 패킷을 빠르게 전송된 패킷을 TCP는추적하고 관리
- TCP 에서 전송하는 패킷 = Segment
특징
- 연결 지향 방식으로 패킷 교환 방식 사용 (가상 회선 X)
- 3-way handshaking으로 연결을 설정 & 4-way handshaking으로 해제
- 흐름 및 혼잡 제어
- 높은 신뢰성
- 전이중(Full-Duplex), 점대점(Point-to-Point 방식)
- 데이터 전송 순서 보장
- TCP header에서는 checksum, 확인 응답, 타임-아웃 등을 통해 수행
단점
- 데이터를 전송하기 전에 반드시 연결이 되어 있어야 통신 가능
- 1:1 통신만 가능
- 고정된 통신 선로가 아닐 경우에는 대부분 UDP보다 느림
과정
connection setup - data transfer - connection termination
UDP(User Datagram Protocol)
비연결 지향적 프로토콜
- 데이터를 주고 받을 때 연결 절차를 거치지 않고 일방적으로 전송함
- UDP 에서 전송하는 패킷 = Datagram
특징
- 연결없이 통신 가능
- 데이터그램 방식
- 네트워크 계층에서 사용되는 방식
- 데이터 전송 전에 송/수신자 사이에 가상 회선이라 불리는 논리적 경로를 설정하지 않고, 패킷이 독립적으로 전송됨
- 소켓이 아닌 IP 기반 데이터 전송
- 1:1, 1:N, N:M 방식으로 연결 가능
- TCP 보다 속도가 빠르므로 성능이 중요한 경우에 사용
단점
- 흐름제어가 없어 패킷이 제대로 전송이 되었는지 오류가 없는지 확인할 수 없음
- 흐름제어: 데이터 송신과 수신하는 곳의 데이터 처리 속도를 제어하여 수신자의 버퍼 오버플로우를 방지
- 데이터의 신뢰성 부족
비교
| TCP | UDP |
---|
연결방식 | 연결형(패킷 교환) | 비연결형(데이터 그램) |
전송 순서 | 전송 순서 보장 | 전송 순서 비보장 |
수신 여부 | 수신 여부 확인 | 수신 여부 미확인 |
통신 방식 | 1:1 통신 | N:N 통신 |
신뢰성 | 높음 | 낮음 |
속도 | 느림 | 빠름 |
패킷 | Segment | Datagram |
출처
https://mangkyu.tistory.com/15
https://velog.io/@devharrypmw/TCPUDP-TCP와-UDP의-특징과-차이