728x90
반응형
📌 TCP(Transmission Control Protocol) 개요
- 신뢰성 있는 연결 지향적 (Connection-oriented) 프로토콜
- 데이터 전송의 순서 보장 및 오류 검출 및 복구 기능 제공
- UDP와 달리, 패킷 손실 시 재전송(Retransmission) 수행
- 멀티플렉싱(Multiplexing)으로 여러 응용 프로그램이 동일한 연결을 사용할 수 있도록 함
🔹 TCP의 주요 특징
- 3-Way Handshake (연결 수립)
- 송신자(클라이언트)와 수신자(서버) 간 연결을 설정하는 과정
- 단계:
- SYN: 클라이언트 → 서버 (연결 요청)
- SYN+ACK: 서버 → 클라이언트 (연결 요청 승인)
- ACK: 클라이언트 → 서버 (연결 완료)
- 연결이 성립된 후 데이터 전송 시작
- 4-Way Handshake (연결 종료)
- 연결 종료 시 FIN & ACK 교환 (두 방향에서 개별적으로 수행)
- 단계:
- FIN: 종료 요청
- ACK: 종료 요청 수락
- FIN: 반대 방향도 종료 요청
- ACK: 종료 완료
- 패킷 스위칭 방식(Packet Switching)
- 데이터를 패킷 단위로 분할하여 빠른 경로로 전송 후, 수신 측에서 재조립
- 수신 확인(ACK) 미수신 시 재전송
- 흐름 제어(Flow Control) & 슬라이딩 윈도우
- 슬라이딩 윈도우(Sliding Window): 전송 속도 조절
- 네트워크 상태에 따라 데이터량 동적 조정(Nagle 알고리즘 활용)
🔹 TCP 헤더 구조
| 필드명 | 설명 |
| Source Port | 송신 포트 번호 |
| Destination Port | 수신 포트 번호 |
| Sequence Number | 데이터 순서 번호 |
| Acknowledgment Number | 확인 응답 번호 |
| Flags (6개) | 연결/제어 관련 플래그 |
| Window Size | 흐름 제어 위한 크기 |
| Checksum | 오류 검사 |
| Urgent Pointer | 긴급 데이터 처리 |
📌 TCP 플래그 (Flags)
- SYN: 연결 요청
- ACK: 응답 확인
- FIN: 연결 종료
- RST: 연결 강제 종료
- PSH: 즉시 전송
- URG: 긴급 데이터 처리
🔹 TCP와 관련된 프로토콜 (TCP Suite)
- Telnet (원격 로그인)
- FTP (파일 전송)
- SMTP (메일 전송)
- DNS (도메인 네임 시스템, 일부 TCP 사용)
- SNMP (네트워크 관리)
- HTTP/HTTPS (웹 서비스)
🔹 TCP vs UDP 비교
| 구분 | TCP | UDP |
| 연결 방식 | 연결 지향(Connection-oriented) | 비연결(Connectionless) |
| 신뢰성 | 신뢰성 있음 (데이터 손실 시 재전송) | 신뢰성 없음 |
| 속도 | 느림 | 빠름 |
| 데이터 순서 보장 | O | X |
| 사용 예시 | HTTP, FTP, SMTP | DNS, VoIP, 스트리밍 |
🛠 정리 요약
✔ TCP는 신뢰성 있는 데이터 전송을 보장하는 연결 지향적 프로토콜
✔ 3-Way Handshake로 연결을 설정하고, 4-Way Handshake로 종료
✔ 패킷 손실 시 재전송(Retransmission) 수행
✔ 슬라이딩 윈도우(Sliding Window) 로 전송 속도 조절
✔ 주요 서비스: HTTP, FTP, SMTP, DNS, Telnet 등
💡 추가할 내용 있으면 말해줘! 🚀
반응형
'네트워크 > 네트워크' 카테고리의 다른 글
| 네트워킹 (0) | 2025.04.09 |
|---|---|
| 포트 번호 (0) | 2025.04.09 |
| ICMP(Internet Control Message Protocol) (0) | 2025.04.09 |
| ARP(Address Resolution Protocol), RARP, BootP, DHCP(Dynamic Host Configuration Protocol) (0) | 2025.04.09 |
| IP (Internet Protocol) (0) | 2025.04.09 |