[Network기초] 7. TCP
TCP
- TCP(Transport Control Protocol)는 IP프로토콜 위에서 연결형 서비스를 지원하는 전소 계층의 프로토콜이다.
- 인터넷 상에서 데이터를 메시지 형태로 보내기 위해 IP 와 함께 사용하는 프로토콜
- 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜
TCP 특징
- 연결형 서비스로 가상 회선 방식을 제공한다
- 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다
- 흐름제어 및 혼잡제어
- 높은 신뢰성을 보장한다
- UDP보다 속도가 느리다
- 전이중(Full-Duplex), 전대중(Point to Point)방식
TCP서버의 특징
- 서버소켓은 연결만을 담당한다
- 연결과정에서 반환된 클라이언트로 소켓은 데이터의 송수신에 사용된다
- 서버와 클라이언트는 1대1로 연결된다
- 스트림 전송으로 전송 데이터의 크기가 무제한이다
- 패킷에 대한 응답을 해야하기 때문에 (지연 시간, CPU소모) 성능이 낮다
- Streaming서비스에 불리하다 (손실될 경우 재전송을 요청하므로)
UDP
- User Datagram Protocol
- ** 데이터를 데이터그램 단위로 처리하는 프로토콜**
- 신뢰성보다는 연속성이 중요한 서비스
- 예) 실시간 스트리밍 서비스
UDP 특징
- 비연결형 서비스로 데이터그램 장식을 제공한다
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다
- UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다
- 신뢰성이 낮다
- TCP보다 속도가 빠르다
UDP서버의 특징
- UDP에는 연결 자체가 없어서(connection 함수 불필요) 서버 소켓과 클라이언트 소켓의 구분이 없다
- 소켓 대신 IP를 기반으로 데이터를 전송한다
- 서버와 클라이언트는 1대1, 1대N, N대N 등으로 연결될 수 있다
- 데이터그램(메시지) 단위로 전송되며, 그 크기는 65535바이트로 크기가 초과하면 잘라서 보낸다
- 흐름제어가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다
- 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시 되는 경우에 사용된다
TCP | UDP | |
---|---|---|
연결방식 | 연결형 서비스 | 비연결형 서비스 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
전송 순서 | 전송 순서 보장 | 전송 순서가 바뀔 수 있음 |
수신 여부 확인 | 수신 여부 확인 | 수신 여부 확인하지 않음 |
통신 방식 | 1:1 통신 | 1:1, 1:N, N:N 통신 |
신뢰성 | 높다 | 낮다 |
속도 | 느리다 | 빠르다 |