TCP와 UDP는 무엇인가?
TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜이다.
전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고, IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층이다. 이때, TCP와 UDP는 포트 번호로 서비스를 식별하며 TCP는 정확성, UDP는 신속성을 추구한다.
1. TCP(Transmission Control Protocol)
💡 TCP란?
신뢰성 있는 데이터 전송을 지원하는 연결 지향적 프로토콜
이때 연결 지향적 프로토콜이란 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미한다.
일반적으로 TCP와 IP가 함께 사용된다.
1) IP가 데이터의 전송을 처리한다면
2) TCP는 패킷 추적 및 관리를 하게 된다.
1-1. 3-way handshake 방식(SYN, ACK)
TCP 통신은 3-way handshake 라는 방식으로 연결된다.
이 방식은 서로의 통신을 위한 포트를 확인하고 연결하기 위해 3번의 요청 및 응답 후에 연결이 되는 과정을 말한다.
이 과정에서 가장 많은 시간이 소요되기 때문에 TCP가 UDP 방식보다 속도가 느리다.
1-2. TCP 통신의 특징
- 연결형 서비스로 연결이 성공해야 통신이 가능하다.
- 데이터의 경계를 구분하지 않는다. (바이트 스트림 서비스)
- 데이터의 전송 순서를 보장한다. (데이터의 순서 유지를 위해 각 바이트마다 번호를 부여)
- 신뢰성 있는 데이터를 전송한다. (Sequence Number, Ack Number를 통한 신뢰성 보장)
- UDP 통신보다 전송속도가 느리다.
- 연결 설정(3-way handshaking)과 해제(4-way handshaking)
- 데이터 흐름 제어 및 혼잡 제어
- 흐름 제어- 보내는 측과 받는 측의 데이터 처리속도 차이를 조절해주는 것
- 혼잡 제어- 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것
1-3. TCP 통신의 단점
- 데이터로 보내기 전에 반드시 연결이 형성되어야함.
- 1 : 1 통신만 가능함.
- 고정된 통신 선로가 최단선(네트워크 길이)이 아닐경우 상대적으로 UDP보다 데이터 전송속도가 느림.
2. UDP(User Datagram Protocol)
💡 UDP란?
비연결 지향적 프로토콜
이때 비연결 지향적이란 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신하는 방식을 의미한다.
TCP와는 다르게 UDP는 신호를 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이기 때문에 상대적으로 TCP보다 UDP의 통신방식이 빠르다. 하지만, UDP는 데이터 전달의 신뢰성을 떨어진다.
UDP는 발신자가 데이터 패킷을 순차적으로 보내더라도 이 패킷들을 서로 다른 통신 선로를 통해 전달 될 수 있다. 또한, 통신과정 중간에 패킷이 유실되거나 변조가 될지어도 재전송을 하지 않는다.
2-1. UDP 통신의 특징
- 비연결형 서비스로 연결 없이 통신이 가능하며 데이터그램 방식을 제공한다.
- 데이터 경계를 구분한다. (데이터그램(datagram) 서비스)
- 정보를 주고 받을때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- 신뢰성 없는 데이터를 전송한다. (데이터 재전송과 데이터 순서 유지를 위한 작업을 하지 않는다.)
- 패킷관리가 필요하다.
- 패킷 오버헤드가 적어 네트워크 부하가 감소되는 장점이 존재한다.
- 상대적으로 TCP보다 전송속도가 빠르다.
2-2. UDP 통신의 단점
- 데이터의 신뢰성이 없다.
- 의미있는 서버를 구축하기위해서는 일일이 패킷을 관리해주어야 한다.
3. TCP 와 UDP 비교
TCP와 UDP는
- 포트 번호를 이용하여 주소를 지정하고
- 데이터 오류 검사를 위한 체크섬이 존재한다.
는 공통점을 갖고 있다.
둘의 차이점은 다음과 같다.
TCP(Transfer Control Protocol) | UDP(User Datagram Protocol) |
연결형 프로토콜 | 비연결형 프로토콜 |
데이터의 경계 구분 X | 데이터의 경계 구분 O |
신뢰하는 데이터 전송 (데이터 재전송 O) | 신뢰성 없는 데이터 전송(데이터 재전송 X) |
1:1 통신 | 1:1 / 1:N / N:N 통신 |
전송 순서 보장 O | 전송 속도 보장 X |
통신속도 느림 | 통신속도 빠름 |
즉, TCP는 연속성보다 신뢰성 있는 전송이 중요한 브라우저나 메일 등의 서비스에서 자주 사용되고,
UDP는 신뢰성보다 연속성이 중요한 실시간 스트리밍과 같은 서비스에서 자주 사용된다.
'공부 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
[CS스터디 / 네트워크] URL, URI, URN (0) | 2023.01.04 |
---|---|
[CS스터디 / 네트워크] 도메인 (0) | 2023.01.04 |
[CS 스터디/디자인패턴] 5. 옵저버 패턴(Observer Pattern) (0) | 2022.12.14 |
[CS 스터디/디자인패턴] 4. 전략 패턴(Strategy Pattern) (0) | 2022.12.14 |
[CS 스터디/디자인패턴] 3. 팩토리 패턴(Factory Pattern) (0) | 2022.12.14 |