TCP(Transmission Control Protocol)
TCP의 특징
- 가상회선 패킷 교환방식 --> 순서보장
- 연결지향 ( 3-way handshake)
- 신뢰성
- 흐름제어
- 혼잡제어
하지만 단점으로는 최소처리량을 보장하지 않고, 속도가 UDP에 비해 느리다.
흐름제어란?
데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 것입니다
혼잡제어란?
네트워크 내의 패킷수가 넘치지 않도록 방지.
TCP 연결 성립 및 해제 과정
TCP Connection
1. SYN 단계 (클라이언트 -> 서버)
서버에 접속을 요청하는 SYN 패킷 전송 후 SYN_SENT 상태가 된다.
2. SYN+ACK 단계 (서버-> 클라이언트)
ACK : 요청을 수락했다는 메시지
SYN : 접속 요청 프로세스인 클라이언트도 포트를 열어달라는 메시지
3. ACK 단계(클라이언트-> 서버)
클라이언트는 서버의 응답을 받았다는 의미로 , 서버의 ISN+1 하여 다시 서버로 ACK를 보낸다.
ACK를 보내고 클라이언트는 ESTABLISHED 상태로 변경, 서버도 ACK 받고 ESTABLISHED로 상태 변경
TCP Disconnection
상태 | |
CLOSED | 닫힌상태 |
LISTEN | 포트가 열린 상태로 연결 요청 대기중 |
SYN_SENT | SYN 요청을 한 상채 |
SYN_RECEIVED | SYN 요청을 받고 상대방의 응답 기다리는중 |
ESTABLISHED | 연결이 확인된 상태 |
UDP(User Datagram Protocol)
데이터그램 패킷 교환방식 사용.---> 순서 보장X
신뢰성 없다.
UDP는 비연결형 프로토콜로서, 에러검사 등 신뢰성과 관련된 기능들을 제공하지 않아 Best Effort service 라고 불린다.
(최선을 다할게 하지만 결과는 보장못해 같 느낌이라고 한다..ㅋㅋ)
장점: 오버헤드가 작고 지연시간이 짧다.(전송속도 빠름)
온라인게임, 스트리밍서비스 등 신뢰성보다는 성능이 중요시되는 경우에 사용.
TCP | UDP | |
연결방식 | 연결형 서비스 | 비연결형 서비스 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
순서보장 | 전송 순서 보장 | 순서보장X |
신뢰성 | 신뢰성 높음 | 신뢰성 낮음 |
속도 | 느림 | 빠름 |
출처: https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4