hanker

[Network] TCP(Transmission Control Protocol)란? 본문

Network

[Network] TCP(Transmission Control Protocol)란?

hanker 2025. 5. 12. 17:12
반응형

전송 계층에서 사용되는 프로토콜인 TCP에 대해서 알아보자.

 


1. TCP (Transmission Control Protocol)

 

TCP는 인터넷 프로토콜 스위트(Internet Protocol Suite)의 전송 계층 프로토콜로, 신뢰성 있는 데이터 전송을 보장하는 연결 지향 프로토콜이다.

 

특징

1-1. 연결 지향성 (Connection-Oriented)

  • 3-way handshake를 통해 양 끝단 간의 연결을 먼저 설정한다.
  • 데이터 전송이 끝나면 4-way handshake로 연결을 종료
  • 연결이 확립된 후에만 데이터 전송 가능

1-2. 신뢰성 있는 전송

  • 확인 응답(ACK): 수신 측이 데이터를 받았음을 송신 측에 알려준다.
  • 시퀀스 번호: 모든 바이트에 고유한 번호를 할당하여 순서를 보장한다.
  • 재전송: 일정 시간 내에 ACK가 오지 않으면 패킷을 재전송한다.
  • 체크섬: 데이터 무결성을 검증

1- 3. 흐름 제어 (Flow Control)

  • 슬라이딩 윈도우: 수신 측의 버퍼 크기에 맞춰 전송량을 조절
  • 수신자가 처리할 수 있는 속도로 데이터를 전송

1- 4. 혼잡 제어 (Congestion Control)

  • Slow Start: 처음에는 적은 양으로 시작해 점진적으로 증가시킨다.
  • AIMD: 혼잡이 감지되면 전송량을 절반으로 줄이고, 그렇지 않으면 선형적으로 증가시킨다.
  • Fast Recovery/Fast Retransmit: 패킷 손실 감지 시 빠른 복구를 수행한다.

1- 5. 전이중 통신 (Full-Duplex)

  • 양방향 동시 통신이 가능하다.
  • 각 방향마다 독립적인 시퀀스 번호를 가진다.

 

구분 장점 단점
신뢰성 - 데이터 전송 보장
- 손실된 패킷 재전송
- 순서 보장
- 오류 검출 및 복구
- 재전송으로 인한 지연 발생
- 오버헤드 증가
연결 관리 - 안정적인 연결 상태 유지
- 연결 품질 모니터링
- 연결 설정/해제 시간 소요• 연결 상태 유지를 위한 리소스 필요
흐름 제어 - 수신자 처리 능력에 맞춘 전송
- 버퍼 오버플로우 방지
- 전송 속도 제한
- 윈도우 크기 조절로 인한 복잡성
혼잡 제어 - 네트워크 과부하 방지
- 효율적인 대역폭 활용
- 초기 연결 시 낮은 전송률
- 혼잡 시 급격한 속도 감소
데이터 무결성 - 체크섬을 통한 오류 검증
- 중복 데이터 제거
- 체크섬 계산 오버헤드
- 추가적인 처리 시간 필요
적용 분야 - 파일 전송에 적합
- 웹 브라우징에 최적
- 이메일, DB 통신에 안정적
- 실시간 통신에 부적합
- 스트리밍 서비스에 비효율적
- 지연 시간에 민감한 앱에 부적절
프로토콜 구조 - 잘 정의된 표준
- 광범위한 지원
- 다양한 옵션 제공
- 20바이트 이상의 큰 헤더
- 복잡한 상태 관리
- 구현이 복잡함
보안 - 연결 기반으로 보안 강화 용이
- SSL/TLS와 쉬운 통합
- 연결 정보 노출 가능
- SYN flooding 등 공격에 취약

 

 


2. TCP 헤더 구조

TCP 헤더 구조

  • URG (Urgent) : 긴급 데이터 포함
  • ACK (Acknowledgment) : 확인 응답
  • PSH (Push) : 즉시 전달
  • RST (Reset) : 연결 재설정
  • SYN (Synchronize) : 연결 시작
  • FIN (Finish) : 연결 종료

3. TCP 사용 예시
  • 웹 브라우징: HTTP/HTTPS
  • 이메일: SMTP, POP3, IMAP
  • 파일 전송: FTP, SFTP
  • 원격 접속: SSH, Telnet
  • 데이터베이스: MySQL, PostgreSQL 등의 연결

TCP는 데이터의 정확성과 순서가 중요한 대부분의 애플리케이션에서 사용되며, 인터넷 통신의 중추적인 역할을 담당하고 있다.

 

반응형