TCP (흐름제어혼잡제어): 두 판 사이의 차이
기술노트
(CS 용어 정리 - TCP (흐름제어혼잡제어) 추가) |
편집 요약 없음 |
||
(같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
= 📡 TCP (Transmission Control Protocol) = | |||
'''TCP'''는 인터넷상에서 데이터를 정확하고 안정적으로 전송하기 위해 사용하는 프로토콜입니다. 인터넷에서 데이터를 주고받는 데 필수적인 역할을 하며, 주로 웹페이지 보기, 이메일 보내기 등에서 사용됩니다. | |||
---- | |||
== 🔍 TCP 개요 == | |||
TCP는 데이터를 보내기 전에 반드시 연결을 설정하는 방식으로, 데이터의 신뢰성을 보장합니다. | |||
* '''연결 지향적''': 데이터 전송 전 연결 설정 | |||
* '''신뢰성''': 데이터 손실과 오류 최소화 | |||
* '''전송 계층''': OSI 모델의 4계층에 위치 | |||
---- | |||
== ⚙️ TCP 주요 특징 == | |||
=== 1. 연결 설정과 종료 === | |||
* 연결 설정 (3-way Handshake) | |||
# 송신자 → 수신자: 연결 요청(SYN) | |||
# 수신자 → 송신자: 연결 승인(SYN-ACK) | |||
# 송신자 → 수신자: 연결 확인(ACK) | |||
* | * 연결 종료 (4-way Handshake) | ||
# 송신자 → 수신자: 종료 요청(FIN) | |||
# 수신자 → 송신자: 종료 확인(ACK) | |||
# 수신자 → 송신자: 종료 요청(FIN) | |||
# 송신자 → 수신자: 종료 확인(ACK) | |||
* | === 2. 신뢰성 보장 === | ||
* '''순서 보장''': 데이터가 전송된 순서대로 도착 | |||
* '''오류 감지''': 데이터 오류 발생 시 자동 재전송 | |||
* '''중복 방지''': 중복된 데이터를 제거 | |||
* | === 3. 흐름제어 === | ||
* 수신자의 처리 능력에 맞춰 데이터를 전송 | |||
* '''슬라이딩 윈도우''' 방식을 사용해 효율적 전송 | |||
* | === 4. 혼잡제어 === | ||
* 네트워크가 과부하되지 않게 데이터 전송 속도 조절 | |||
* 주요 알고리즘: Slow Start, AIMD, Fast Retransmit, Fast Recovery | |||
=== 5. 전이중 통신 === | |||
* 동시에 양방향으로 데이터 전송 가능 | |||
---- | |||
== 📋 TCP 헤더 구조 (주요 필드) == | |||
* '''Source Port''': 송신 포트 번호 | |||
* '''Destination Port''': 수신 포트 번호 | |||
* '''Sequence Number''': 데이터 순서 번호 | |||
* '''Acknowledgment Number''': 다음 예상 데이터 번호 | |||
* '''Window Size''': 수신자 버퍼 크기(RWND) | |||
* '''Checksum''': 데이터 오류 확인 | |||
---- | |||
== ⚡ TCP vs UDP 비교 == | |||
{| class="wikitable" | |||
! 특성 !! TCP !! UDP | |||
|- | |||
| 연결 여부 || 연결 지향 || 연결 없음 | |||
|- | |||
| 신뢰성 || 높음 || 낮음 | |||
|- | |||
| 속도 || 상대적으로 느림 || 빠름 | |||
|- | |||
| 흐름제어, 혼잡제어 || 지원 || 미지원 | |||
|- | |||
| 활용 예시 || 웹, 이메일, 파일 전송 || 영상 스트리밍, DNS | |||
|} | |||
---- | |||
== 🚀 TCP 장점과 단점 == | |||
=== 장점 === | |||
* 신뢰성 높은 데이터 전송 | |||
* 데이터 전송 순서 보장 | |||
* 네트워크 혼잡 방지 | |||
=== 단점 === | |||
* 상대적으로 속도가 느림 | |||
* 연결 설정과 관리로 인한 부하 | |||
---- | |||
== 💼 TCP 활용 분야 == | |||
* 웹 브라우징 (HTTP/HTTPS) | |||
* 이메일 (SMTP, POP3) | |||
* 파일 전송 (FTP, SFTP) | |||
* 원격 접속 (SSH, Telnet) | |||
== | ---- | ||
== 📚 참고 자료 == | |||
* | * [https://kmong.com/self-marketing/539751/LUA54VnQsP 💼 IT 면접용 CS PDF] | ||
* [https://inf.run/o1NX 📦 AWS 백엔드 강의] | |||
* [https://inf.run/rpX4 🤖 ChatGPT 앱 개발 강의] | |||
* [https://www.yes24.com/Product/Goods/122536127 📘 백엔드 번역서] | |||
* [https://kmong.com/self-marketing/660133/0lzAfkXXMc 📕 기술노트with알렉 PDF 도서] | |||
* | |||
* |
2025년 8월 6일 (수) 17:40 기준 최신판
📡 TCP (Transmission Control Protocol)
TCP는 인터넷상에서 데이터를 정확하고 안정적으로 전송하기 위해 사용하는 프로토콜입니다. 인터넷에서 데이터를 주고받는 데 필수적인 역할을 하며, 주로 웹페이지 보기, 이메일 보내기 등에서 사용됩니다.
🔍 TCP 개요
TCP는 데이터를 보내기 전에 반드시 연결을 설정하는 방식으로, 데이터의 신뢰성을 보장합니다.
- 연결 지향적: 데이터 전송 전 연결 설정
- 신뢰성: 데이터 손실과 오류 최소화
- 전송 계층: OSI 모델의 4계층에 위치
⚙️ TCP 주요 특징
1. 연결 설정과 종료
- 연결 설정 (3-way Handshake)
- 송신자 → 수신자: 연결 요청(SYN)
- 수신자 → 송신자: 연결 승인(SYN-ACK)
- 송신자 → 수신자: 연결 확인(ACK)
- 연결 종료 (4-way Handshake)
- 송신자 → 수신자: 종료 요청(FIN)
- 수신자 → 송신자: 종료 확인(ACK)
- 수신자 → 송신자: 종료 요청(FIN)
- 송신자 → 수신자: 종료 확인(ACK)
2. 신뢰성 보장
- 순서 보장: 데이터가 전송된 순서대로 도착
- 오류 감지: 데이터 오류 발생 시 자동 재전송
- 중복 방지: 중복된 데이터를 제거
3. 흐름제어
- 수신자의 처리 능력에 맞춰 데이터를 전송
- 슬라이딩 윈도우 방식을 사용해 효율적 전송
4. 혼잡제어
- 네트워크가 과부하되지 않게 데이터 전송 속도 조절
- 주요 알고리즘: Slow Start, AIMD, Fast Retransmit, Fast Recovery
5. 전이중 통신
- 동시에 양방향으로 데이터 전송 가능
📋 TCP 헤더 구조 (주요 필드)
- Source Port: 송신 포트 번호
- Destination Port: 수신 포트 번호
- Sequence Number: 데이터 순서 번호
- Acknowledgment Number: 다음 예상 데이터 번호
- Window Size: 수신자 버퍼 크기(RWND)
- Checksum: 데이터 오류 확인
⚡ TCP vs UDP 비교
특성 | TCP | UDP |
---|---|---|
연결 여부 | 연결 지향 | 연결 없음 |
신뢰성 | 높음 | 낮음 |
속도 | 상대적으로 느림 | 빠름 |
흐름제어, 혼잡제어 | 지원 | 미지원 |
활용 예시 | 웹, 이메일, 파일 전송 | 영상 스트리밍, DNS |
🚀 TCP 장점과 단점
장점
- 신뢰성 높은 데이터 전송
- 데이터 전송 순서 보장
- 네트워크 혼잡 방지
단점
- 상대적으로 속도가 느림
- 연결 설정과 관리로 인한 부하
💼 TCP 활용 분야
- 웹 브라우징 (HTTP/HTTPS)
- 이메일 (SMTP, POP3)
- 파일 전송 (FTP, SFTP)
- 원격 접속 (SSH, Telnet)