TCP 란?
프로토콜 계층

- TCP 는 연결 지향형 프로토콜이다.
- TCP 는 가상 회선을 만들어 신뢰성을 보장하도록 하는 프로토콜로 속도가 느리다.
- TCP 는 파일전송과 같은 신뢰성이 중요한 서비스에 사용된다.
TCP (Transmission Control Protocol) 특징
- 연결지향 - TCP 3 way handshake (가상 연결)

- 데이터 전달을 보증한다.
- 메시지를 받지 못했을 경우 데이터가 전달되지 않았다는 사실을 알 수 있다.

- 패킷의 순서를 보장한다.

TCP 3 way handshake
- TCP 가 가상회선을 수립하는 단계이다.
- 클라이언트는 서버에 요청을 전송할 수 있는지, 서버는 클라이언트에게 응답을 전송할 수 있는지 확인하는 과정이다.
- SYN ACK 패킷을 주고받으며 임의의 난수로 SYN 플래그를 전송하고 ACK 플래그에 1을 더한값을 전송한다.
TCP 4 way handshake
- TCP 연결을 해제하는 단계로 클라이언트는 서버에게 연결 해제를 통지하고 서버가 이를 확인하고 클라이언트에게 이를 받았음을 전송해주고 최종적으로 연결이 해제된다.
- 단, 서버에서 소켓이 닫혔다고 통지해도 클라이언트 측에서는 일정시간 대기하는데 이는 혹시나 패킷이 나중에 도착할 수도 있기 때문이다.
흐름 제어
혼잡 제어
대표적인 TCP
| 프로토콜 | 포트 | 주요 기능 | 사용 예시 |
|---|
| HTTP (HyperText Transfer Protocol) | 80 (HTTP), 443 (HTTPS) | 웹 페이지 요청/응답 | 웹브라우저로 웹사이트 보기 |
| FTP (File Transfer Protocol) | 21 (제어), 20 (데이터) | 파일 전송 (평문) | 옛날 웹 서버에 파일 업로드 |
| SFTP (SSH File Transfer Protocol) | 22 | 보안 파일 전송 | 서버에 로그/파일 업로드 |
| SMTP (Simple Mail Transfer Protocol) | 25, 587, 465 | 이메일 발송 | Gmail이 메일 보내는 방식 |
| LDAP (Lightweight Directory Access Protocol) | 389 (LDAP), 636 (LDAPS) | 사용자 인증, 디렉터리 조회 | 회사 사내 로그인 시스템, SSO |
UDP 란?
- UDP 는 데이터를 데이터그램 단위로 전송하는 프로토콜이다.
- IP 와 거의 같지만, PORT 와 체크섬 정도만 추가된 상태다.
- UDP 는 따로 신뢰성을 보장하기 위한 절차가 없어 속도가 빠르다.
- UDP 는 스트리밍 RTP 와 같은 연속성이 중요한 서비스에 사용된다.
- UDP 도 신뢰성을 UDP 자체에서 보장하지 않는 것 뿐이지 개발자가 직접 신뢰성을 보장하게끔 할 수 있다.
- HTTP/3 는 QUIC 이라는 프로토콜을 기반으로 하는데 이는 UDP 를 기반으로 한다.
- 즉, UDP 자체는 신뢰성을 보장하지 않지만 추가적인 정의를 통해 신뢰성을 보장받을 수 있다.