본문 바로가기
STUDY/Computer Science

Network - TCP (Transmission Control Protocol)

by HR_J 2024. 5. 1.

TCP

패킷을 안전하게 전달해주는 전송 프로토콜. IP위에서 동작한다.

데이터의 전달을 보장하고, 순서 또한 보장한다.

 

특징

1) 신뢰성 : 데이터의 분실, 중복, 혹은 오류가 발생할 경우 재전송

2) 연결 지향적 : 통신 시작 전 송수신자를 연결

3) 흐름 제어 : 혼잡도를 감지하여 데이터 전송 속도를 조절해 통신을 보다 효율적으로 유지

4) 순서 보장 : 데이터는 전송된 순서대로 도착

 

흐름 제어 : 송신측과 수신측의 데이터 처리 속도의 차이를 해결하기 위한 기법

혼잡 제어 : 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법

 

TCP 동작 과정

연결 설정 - 3 way handshake

두 종단 간 정확한 데이터 전송을 보장하기 위해 연결을 설정하는 과정

  1. 클라이언트에서 연결 생성을 위해 SYN 요청
  2. 서버에서 생성하겠다고 ACK 응답
  3. 클라이언트에서 생성 확인했다고 ACK 응답
  4. 서버에서 클라이언트로 부터 생성 확인 ACK 응답을 받으면 최종적으로 연결 생성 완료

Connection Time : 3-way handshake를 통해 연결이 생성되는 시간. 이 시간이 너무 오래 걸리면 요청 실패가 될 수 있다.

 

연결 종료 - 4 way handshake

두 종단 간 데이터 전송을 끝낸 후 연결 설정을 해제하는 과정

연결이 생성된 후 부터는 DATA를 전송하고 수신하는 처리를 거친 후 FIN 명령을 통해 연결 종료

  1. 클라이언트가 연결 종료를 위해 FIN 전송
  2. 서버가 연결 종료하겠다고 ACK, FIN 전송
  3. 클라이언트도 종료했다고 ACK 전송
  4. 서버도 ACK 수신 후 최종적으로 종료

 

TCP와 UDP

TCP : 프로토콜 내 여러 규칙으로 인해 신뢰성 높은 연결만 지원하지만 느린 속도

UDP : 프로토콜 내 규칙을 간소화 하고 신뢰성은 낮지만 빠른 전송속도

TCP   UDP
연결형 서비스 연결 방식 비연결성 서비스
가상 회선 방식 패킷 교환 데이터그램 방식
보장함 전송 순서 보장 보장 X
높음 신뢰성 낮음
느림 전송 속도 빠름
UDP는 그렇다면 어디에 쓰일까?
>> 빠른 전송이 필요하면서 데이터 손실이 크게 문제가 되지 않는 환경( 온라인 게임, 중계방송 등 )

 


IP 와 TCP/IP는 내일이어서 투비 컨티뉴....

'STUDY > Computer Science' 카테고리의 다른 글

객체지향 프로그래밍 - 캡슐화, 추상화  (0) 2024.05.13
Network - TCP/IP  (0) 2024.05.03
Network - IP Address (Internet Protocol Address)  (0) 2024.05.02