TCP / UDP ?
전송 계층(Transport Layer)은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하여 재전송 요구 제어 등을 담당하는 계층이다. 즉, 데이터의 전달을 담당한다.
전송 계층에서 사용하는 전송방식 TCP, UDP
TCP(Transmission Control Protocol)?
응용 프로그램과 컴퓨팅 장치가 네트워크를 통해 메시지를 교환할 수 있도록 하는 통신 표준이다.
인터넷을 통해 패킷을 전송하고 네트워크를 통해 데이터와 메시지를 성공적으로 전달하도록 설계되어 있다.
또한, 인터넷의 규칙을 정하는 기본 표준 중 하나로 인터넷 특별 위원회(IEIF)가 정의한 표준 안에 포함된다.
디지털 네트워크 통신에서 가장 일반적으로 사용되는 프로토콜 중 하나이며 종단 간 데이터 전달을 보장한다.
네트워크를 통해 통신되는 데이터의 무결점을 보장한다. (신뢰성 있는 데이터 전달)
TCP는 데이터를 전송하기 전에 Source와 Target 사이의 연결을 설정하며, 통신이 시작될 때까지 이 연결을 유지한다.
이 다음 프로세스 전반에 걸쳐 데이터의 무결성을 보장하면서 대량의 데이터를 더 작은 패킷으로 분할한다.
결과적으로, 데이터를 전송해야 하는 높은 수준의 프로토콜들은 모두 TCP 프로토콜을 사용한다.
예)
FTP(파일 전송 프로토콜), SSH(시큐어 셸) 및 Telnet과 같은 peer-to-peer 공유 방식
그 외에도 SMTP(Simple Mail Transfer Protocol)을 통해 이메일을 주고받거나 HTTP를 통한 웹 액세스를 위해 사용된다.
TCP는 존재하지 않거나 손상된 패킷을 포함하고 승인, 연결 시작, 흐름 제어와 같은 제어로 데이터 전송을 보호하기 때문에 expensive network tool이라고 할 수 있다.
TCP 특징
- 연결형 서비스로 가상 회선 방식(처음 패킷으로 최적의 경로를 고정하고 경로가 고정되면 그 다음은 패킷으로 나누어 고속으로 전송하는 기술)을 제공한다.
- 데이터의 경계를 구분하지 않는다.
- 데이터의 전송 순서 보장한다.
- UDP보다 전송속도가 느리다.
- 신뢰성있는 데이터를 전송한다.
참고) IP (Internet Protocol)
인터넷을 위한 네트워크 계층의 프로토콜이며 목적지로 찾아가기 위한 논리적인 주소를 사용한다.
* 논리적인 주소 : IP address
인터넷을 통해 한 장치에서 다른 장치로 데이터를 전송하는 방법이다.
인터넷에 있는 각 컴퓨터(호스트)에는 인터넷 상의 다른 모든 컴퓨터와 고유하게 식별하는 IP주소가 하나 이상 있다.
IP는 응용 프로그램과 장치가 서로 데이터 패킷을 교환하는 방법을 정의하는 역할을 한다.
단일 네트워크 또는 여러 인터넷 연결 네트워크의 컴퓨터 간에 데이터와 메시지를 교환하기 위한 형식과 규칙을 담당하는 주요 통신 프로토콜이다.
이것은 4개의 추상화 계층으로 분할된 TCP/IP를 통해 수행된다.
즉, IP는 TCP/IP의 인터넷 계층 내의 주요 프로토콜로 Source 응용 프로그램 또는 장치와 Target 사이에 데이터 패킷을 전달하는 것이 주된 목적이다.
참고) TCP VS IP
TCP와 IP는 데이터가 네트워크 내의 의도한 Target으로 전달되도록 함께 작동하는 별도의 프로토콜이다.
IP 위에서 실행되는 핵심 프로토콜 중 하나는 TCP이며, 자주 함께 사용되어 TCP/IP로 불리지만 TCP가 IP의 유일한 프로토콜은 아니다.
→ IP는 Network Layer(3계층)에 속해있고 TCP는 Transport Layer(4계층)에 속해있다.
IP는 데이터를 전송해야 하는 응용 프로그램 또는 장치의 주소(IP 주소)를 가져오고 정의한다.
TCP는 네트워크 아키텍처를 통해 데이터를 전송하며 IP가 정의한 대상 응용 프로그램 또는 장치로 전송되도록 보장한다.
즉, IP 주소는 휴대폰의 전화번호와 유사하고
TCP는 사용자가 전화를 건 사람과 대화할 수 있도록 하는데 사용되는 컴퓨터 네트워킹이다. (연결 통로)
두 프로토콜은 데이터가 목적지로 안전하게 도달하기 위해 자주 함께 사용된다. → TCP/IP
UDP ( User Datagram Protocol )?
비연결형 서비스를 지원하는 전송계층 프로토콜
UDP는 응용 프로그램 간의 low-latency connection(낮은 지연 시간 연결)을 설정하고 전송 시간을 줄이는 데 사용된다.
인터넷상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지 않고, 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이다.
데이터를 데이터그램(독립적인 관계를 지니는 패킷) 단위로 처리한다.
UDP는 오류 연결이나 패킷 시퀀싱을 제공하지 않으며(순서 보장 X) 데이터를 전달하기 전에 목적지와 연결하지 않으므로 신뢰성은 떨어지지만 비용은 적게 든다는 장점이 있다.
예)
DNS(Domain Name System) 조회, VoIP(Voice over Internet Protocol) 및 스트리밍 미디어처럼 시간에 민감한 상황에 적합하다.
UDP 특징
- 비연결형 서비스로 데이터그램 방식을 제공한다.
- 정보를 주고 받을때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- 신뢰성 없는 데이터를 전송한다.
- 데이터의 경계를 구분한다.
- TCP보다 전송속도가 빠르다.
결론 (차이점)
TCP는 연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜이며,
UDP는 TCP보다 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만 신뢰성있는 데이터 전송을 보장하지는 않는다.
그렇기 때문에 신뢰성보다는 연속성(어떠한 상태가 계속 유지되는 것)이 중요한 실시간 서비스(streaming)같은 곳에 자주 사용된다.
References
https://www.fortinet.com/resources/cyberglossary/tcp-ip
https://www.techtarget.com/searchunifiedcommunications/definition/Internet-Protocol
https://choseongho93.tistory.com/3
'IT 기본지식' 카테고리의 다른 글
CI/CD 에 대한 간단 정리 (0) | 2022.02.14 |
---|---|
3-Tier Architecture 정의 및 구성방식 (0) | 2022.02.13 |
Virtualization(가상화)란 무엇인가? | Hypervisor(하이퍼바이저) (0) | 2022.02.13 |
NoSQL이란 무엇인가? | 이점, 단점, SQL vs NoSQL (0) | 2022.02.12 |
[DB] 트랜잭션 ACID 간단하게 알아보자 (0) | 2022.02.11 |
댓글