| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- Blazor Web App
- 프론트엔드
- 정보처리기사실기 기본개념
- c언어 정보처리기사
- CS
- cs기술면접
- 컴퓨터과학
- 스프링부트 단점
- C#이론
- SPA MPA 특징
- C# @rendermode
- InteractiveServer
- 스프링부트 장점
- SPA MPA
- C# InteractiveServer
- C# CS
- spring spring boot 차이점 공통점
- 서버저장방식
- 기술면접
- Blazor WebAssembly
- C# Blazor
- Redundant Array of Independent
- OPC-UA
- Service Worker
- 스프링부트의 장단점
- nosql
- jvm구성요소
- 스프링 스프링부트 차이점 공통점
- SPA MPA 차이
- REST API
- Today
- Total
담비의 개발블로그
[CS]TCP(Transmission Control Protocol)/UDP(User Datagram Protocol) 본문
[CS]TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)
담비12 2025. 1. 11. 22:36TCP (Transmission Control Protocol)
TCP는 데이터의 신뢰성을 보장하는 연결 지향 프로토콜이다.
프로토콜이란?
컴퓨터나 네트워크 장치 간에 데이터를 주고받기 위한 규칙과 절차의 집합이다.
◆ 특징
▶ 연결 지향(Connection-Oriented)
- 데이터를 보내기 전에 송신자와 수신자 간에 연결을 설정한다. 이를 3-way handshake(삼중 핸드쉐이크)라고 한다.
- 3-way handshake 과정 : 클라이언트가 서버에 연결 요청(SYN) → 서버가 요청 수락(SYN-ACK) → 클라이언트가 확인 응답(ACK)을 보냄 → 연결이 설정된 후에 데이터를 전송
▶ 신뢰성 보장
- 데이터가 순서에 맞게 전달된다.
- 손실된 데이터는 재전송한다(재전송 메커니즘).
- 데이터의 무결성을 확인한다(체크섬).
▶ 흐름 제어 및 혼잡 제어
- 수신자의 버퍼 상태를 고려하여 데이터 전송 속도를 조절한다.
- 네트워크 혼잡을 피하기 위해 전송 속도를 동적으로 조절한다.
▶ 속도
- 신뢰성을 위해 추가적인 확인 및 제어 작업이 필요하므로 상대적으로 느리다.
▶ 사용 사례
- 파일 전송(FTP)
- 이메일(SMTP, IMAP, POP3)
- 웹 브라우징(HTTP, HTTPS)
◆ 장점
- 데이터가 손실되지 않고 순서대로 도착함을 보장.
- 신뢰성이 높은 통신이 가능.
◆ 단점
- 오버헤드가 크고 속도가 느림.
- 연결을 유지하기 위한 리소스 사용량 증가.
UDP (User Datagram Protocol)
UDP는 데이터를 빠르게 전송하기 위한 비연결 지향 프로토콜이다.
◆ 특징
▶ 비연결 지향(Connectionless)
- 데이터를 전송하기 전에 연결을 설정하지 않는다.
- 송신자는 데이터를 그냥 전송하며, 수신자가 이를 받을 준비가 되었는지 확인하지 않는다.
▶ 신뢰성 부족
- 데이터 손실, 중복 또는 순서가 바뀔 수 있습니다.
- 재전송 메커니즘이 없다.
▶ 빠른 속도
- 추가적인 제어 메커니즘이 없기 때문에 TCP보다 빠르다.
▶ 간단한 헤더 구조
- TCP에 비해 헤더 크기가 작아서 오버헤드가 적다.
오버헤드란?
- 데이터를 전송하거나 처리할 때 추가적으로 발생하는 부가적인 자원 소비를 의미한다.
▶ 사용 사례
- 실시간 애플리케이션(VoIP, 화상 통화, 스트리밍)
- 게임(멀티플레이어 온라인 게임)
- DNS(Domain Name System)
- DHCP(Dynamic Host Configuration Protocol)
◆ 장점
- 빠른 데이터 전송 속도
- 간단한 구현과 낮은 리소스 사용
◆ 단점
- 신뢰성이 낮음(데이터 손실 가능)
- 데이터의 순서를 보장하지 않음
'CS(컴퓨터과학)' 카테고리의 다른 글
| [CS]Node.js는 싱글스레드인데 비동기 처리 하는 원리 (2) | 2025.07.06 |
|---|---|
| rest api의 정의 (0) | 2025.03.27 |
| [CS]RDBMS(관계형 데이터베이스)/ nosql의 차이 (0) | 2025.01.09 |
| JDBC란? (0) | 2024.08.08 |
| [JPA]1차캐시/2차캐시 (0) | 2024.07.28 |
