TCP는 인터넷 프토토콜과 애플리케이션 사이 중간 단계에서의 통신 서비스를 제공함
TCP는 IP 패킷이 없어지거나, 중복되거나, 순서에 맞지 않게 전달된 것을 감지할 수 있음
TCP는 정시 전송보다 정확한 전송에 최적화되어 있음
TCP는 재전송과 함께 긍정적인 승인(positive acknowledgement)을 사용하여 신뢰성을 얻음
TCP는 데이터 전송의 개별 단위인 segment를 추적함
TCP 프토토콜 과정은 3단계로 나뉘어짐
TCP 커넥션은 인터넷 소켓을 통해서 운영체제에 의해 제어됨
State | Endpoint | Description |
---|---|---|
LISTEN | 서버 | 원격 TCP 끝단으로부터 커넥션 요청을 기다림 |
SYN-SEND | 클라이언트 | 커넥션 요청을 보낸 후 매칭되는 커넥션 요청을 기다림 |
ESTABLISHED | 서버 & 클라이언트 | 열린 커넥션 상태, 전달받은 데이터를 수용자에게 전송할 수 있음 |
FIN-WAIT1 | 서버 & 클라이언트 | 원격 TCP로부터 커넥션 종료를 기다리거나 이전에 보낸 커넥션 종료 요청에 대한 승인을 기다림 |
FIN-WAIT2 | 서버 & 클라이언트 | 원격 TCP로부터 커넥션 종료 요청을 기다림 |
CLOSE-WAIT | 서버 & 클라이언트 | 로컬 사용자로부터 커넥션 종료 요청을 기다림 |
CLOSING | 서버 & 클라이언트 | 원격 TCP로부터 커넥션 종료 요청 승인을 기다림 |
LAST-ACK | 서버 & 클라이언트 | 이전에 원격 TCP로부터 보낸 커넥션 종료 요청에 대한 승인을 기다림 |
TIME-WAIT | 서버 & 클라이언트 | 커넥션의 모든 남아있는 패킷이 만료되었는지 확실하게 하기 위해 충분한 시간을 기다림 |
CLOSED | 서버 & 클라이언트 | 커넥션 상태가 없음 |
이미지출처 : What is a TCP 3-way handshake process?