-
CS : Network : TCP and UDPComputer Science/Network 2021. 4. 20. 11:49728x90
TCP (Transmission Control Protocol)
1. 정의
인터넷 상에서 데이터를 메시지의 형태로 보내기 위해, IP와 함께 사용되는 프로토콜
2.
일반적으로 TCP와 IP를 함께 사용한다.
이 때, IP가 '데이터의 배달'을 처리한다면, TCP는 '패킷의 추적 및 관리' 역할을 한다.
3. TCP의 패킷 전송 과정의 예시
4. 특징
- 연결형 서비스
- client : server = 1 : 1
- stream 전송으로, 전송 데이터의 크기가 무제한이다.
- 가상 회선 방식 : 송신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 설정하는 것
- 3-way handshaking을 통해 연결 설정
- 4-way handshaking을 통해 연결 해제
- 흐름 제어
- 혼잡 제어
- 높은 신뢰성 보장
- UDP보다 느리다
- 전이중(Full-Duplex), 점대점(Point-to-Point) 방식
- 스트리밍 서비스에 불리하다.
5.
TCP는 높은 신뢰성을 보장하기 위해 다양한 기능을 제공하고, 때문에 UDP보다 속도가 느리고, 이 때 CPU를 사용하기 때문에 CPU 성능이 통신 속도에 영향을 미친다.
6. 3-way handshaking
- 장치들 간 논리적인 접속을 성립하기 위해 사용하는 방식이다.
- 본 데이터를 전송하기 전에, 먼저 정확한 전송을 보장하기 위해 상대방과의 사전 세션을 수립하는 과정을 말한다.
- 과정
- client -> server : TCP SYN
- server -> client : TCP SYN ACK
- client -> server : TCP ACK
7. 4-way handshaking
- 세션을 종료하기 위해 수행되는 절차이다.
- 과정
- client -> server : TCP FIN
- server -> client : TCP FIN ACK and TIME_WAIT
- server -> client : TCP FIN
- client -> server : TCP FIN ACK
8. 흐름 제어 (Flow Control)
- 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여, 수신자의 버퍼 오버플로우를 방지한다.
9. 혼잡 제어 (Congestion Control)
- 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 한다.
- 만약, 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡을 막는다.
UDP (User Datagram Protocol)
1. 정의
데이터를 데이터그램 단위로 처리하는 프로토콜
2.
데이터그램 : 독립적인 관계를 가지는 패킷
3. UDP의 패킷 전송 과정의 예시
4. 특징
- 비연결 서비스
- client : server = N : 1 가능
- 데이터그램 단위로 전송되고, 크기는 65535byte로 제한된다.
- 정보를 주고 받을 때, TCP와 같은 별도의 신호절차를 거치지 않는다.
- UDP의 header의 CheckSum 필드를 통해 최소한의 오류만 검증한다.
- 낮은 신뢰성
- TCP보다 빠르다.
- 신뢰성보다는 연속성이 중요한 서비스에 적합하다. (예 : 실시간 스트리밍 방송)
5.
UDP는 '연결'의 개념이 없기 때문에, 서버 소켓과 클라이언트 소켓의 구분이 없다.
소켓 대신, IP를 기반으로 데이터를 전송한다.
TCP와 UDP 비교
- 가장 큰 차이점은, '신뢰적 전송의 유무'이다.
- TCP는 연결형 서비스로, 3-way handshaking 과정을 통해 연결을 설정한다. 때문에, 높은 신뢰성을 보장하지만, 속도가 비교적 느리다.
- UDP는 비연결형 서비스로, 3-way handshaking을 하지 않는다. 때문에 신뢰성이 떨어지는 대신 속도가 빠르다.
- TCP는 신뢰성이 중요한 파일 교환 등에 사용되고, UDP는 실시간성이 중요한 스트리밍 등에 사용된다.
728x90'Computer Science > Network' 카테고리의 다른 글
CS : Network : HTTP 통신 vs Socket 통신 (0) 2021.04.20 CS : Network : OSI 7 Layer (0) 2021.04.20 CS : Network : HTTP 1.1 and 2.0 (0) 2021.04.11 CS : Network : 보안 (0) 2021.04.11 Question : Network (0) 2021.04.06