TCP와 UDP는 데이터를 보내기 위한 프로토콜이다.
TCP 특징
- 연결 지향 방식
- 3-way handshaking 과정을 통해 연결을 설정, 4-way handshaking 을 통해 해제
- 3-way handshaking : 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위한 세션 수립 과정
- 흐름 제어 및 혼잡 제어
- 높은 신뢰성 보장
- UDP보다 속도가 느림
- 전이중 (Full-Duplex), 점대점 (Point to Point) 방식
TCP 서버 특징
- 서버 소켓은 연결만을 담당
- 연결과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용
- 서버와 클라이언트는 1대1로 연결
- 스트림 전송으로 전송 데이터의 크기가 무제한
- 패킷에 대한 응답을 해야하기 때문에 성능이 낮음 (시간 지연, CPU 소모)
- 패킷 : 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해 데이터를 여러 개의 조각들로 나누어 전송하는데 이때, 이 조각을 '패킷'이라고 함
- Streaming 서비스에 불리
UDP 특징
- 비연결형 서비스로 데이터그램 방식을 제공
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않음
- UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출
- 신뢰성이 낮음
- TCP보다 속도가 빠름
UDP 서버 특징
- UDP에는 연결 자체가 없어 (connect 함수 불필요) 서버 소켓과 클라이언트 소켓의 구분이 없음
- 소켓 대신 IP를 기반으로 데이터 전송
- 서버와 클라이언트는 1대1, 1대N, N대N 등으로 연결 가능
- 데이터그램(메세지) 단위로 전송되며 그 크기는 65535 바이트로, 크기가 초과하면 잘라서 전송
- 흐름제어 (flow control)가 없어서 패킷이 제대로 전송 되었는지, 오류가 없는지 확인할 수 없음
- 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시 되는 경우에 사용
프로토콜 종류 | TCP | UDP |
연결 방식 | 연결형 서비스 | 비연결형 서비스 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
전송 순서 | 전송 순서 보장 | 전송 순서가 변경 될 수 있음 |
수신 여부 확인 | 수신 여부 확인 | 수신 여부 미확인 |
통신 방식 | 1:1 통신 | 1:1 or 1:N or N:N 통식 |
신뢰성 | 높음 | 낮음 |
속도 | 느림 | 빠름 |
728x90
'ssung_항해일지 > CS 지식 및 기술면접' 카테고리의 다른 글
Stack & Queue / Array & LinkedList (0) | 2023.05.16 |
---|---|
Web Server 와 WAS (0) | 2023.05.16 |
트랜잭션 (0) | 2023.05.15 |
23.05.13 - 운동일지 (0) | 2023.05.15 |
Rest Client [Spring] (0) | 2023.05.12 |