TCP
기술노트
📡 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)