인터넷 상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜을 말한다.
즉, 클라이언트와 서버가 연결된 상태에서 데이터를 주고 받는 연결 지향적 프로토콜
이라고 할 수 있다.
일반적으로 TCP는 IP와 함께 사용되며 IP는 배달
을, TCP는 패킷의 추적 및 관리
를 하게 된다.
TCP는 연결형 서비스로, 신뢰적인 전송을 보장
하기 때문에 데이터의 흐름제어와 혼잡제어를 수행한다.
3-way handshake
과정을 통해 연결을 수립
하고, 4-way handshake
을 통해 연결을 해제
한다.따라서, TCP는 서버와 클라이언트 간의 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜이다.
데이터를 정확하고 안정적으로 전달할 수 있기 때문에 높은 신뢰성을 보장한다.
SYN
과 ACK
플래그들이 사용됨.클라이언트 → 서버에 접속 요청 메시지 SYN(x) 패킷 전송.
SYN
(Synchronize Sequence Number): 임의의 랜덤 숫자서버 → SYN(x) 받음 → 클라이언트에게 연결요청 메시지 ACK(x+1) + SYN(y) 패킷 전송.
ACK
(Acknowledgement number: SYN+1의 값클라이언트 → ACK(x+1) + SYN(y) 받음 → 서버에 ACK(y+1) 전송.
⇒ 3️⃣번의 통신 완료 후, 연결 성립(Established)
통신을 중단
할 때 사용하는 과정/ 방식TCP 연결을 해제
하는 과정ACK
와 FIN
플래그들이 사용됨.클라이언트 → 서버에게 연결 종료를 알리는 FIN 플래그가 설정된 패킷 전송.
FIN
(finish): 세션을 종료시키는데 사용됨, 더이상 보낸 데이터가 없음을 의미서버 → FIN 신호 확인 → 확인했다고 알려주기 위해 ACK 신호 전송.
서버 통신 끝 → 연결 종료 요청 합의의 의미로 클라이언트에게 FIN 플래그가 설정된 패킷 전송.
클라이언트 → FIN 받음 → 확인의 의미로 ACK 플래그가 설정된 패킷 보냄
⇒ 4️⃣번의 통신 이후, 연결 해제