3. TCP¶
기본적으로 TCP는 SYN_SENT, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT 의 상태를 갖는다.
포트는 16비트로 하나의 NIC에서 최대 65,535개의 소켓을 수용할 수 있다.
3.1. TCP 재전송¶
- 기본적으로 특정 세그먼트를 송신한뒤 타이머를 두어 시간안에 ACK가 오기를 기다리는 방식
- 3연속으로 같은 ACK를 받게된다면 해당 ACK번호의 SEQ를 갖는 세그먼트를 보내는 방식 (fast retransmits)
3.2. TCP 종료¶
- 서버(한쪽)에서 FIN을 세팅하여 세그먼트를 전송한다. (서버는 FIN_WAIT_1 상태)
- 클라이언트는 확인응답(ACK)을 보낸다. (서버는 FIN_WAIT_2 상태)
- 클라이언트는 FIN을 세팅하여 전송한다.
- 서버는 응답을 보낸다. (그리고 서버는 TIME_WAIT 상태)
- 양쪽 자원이 해제된다.