TCP/IP 프로토콜

배병일·2023년 8월 30일

3 way HandShake ( connection )

1. Client가 Server로 요청 SYN 패킷 전송 후 SYN_SENT 상태로 응답 대기

2. Server가 요청 SYN 패킷을 받고 수락하는 ACK 패킷과 SYN패킷 전송 후 SYN_RCVD(SYN_RECEIVED)상태로 Client의 ACK 패킷 응답 대기

3. Client가 SYN 패킷을 받고 ACK 패킷을 보낸 뒤  ESTABLISHED 상태가 되어 통신 가능해짐.

- SYN : 연결확인을 위한 무작위 숫자값

- ACK : SYN ( 요청 값 ) + 1d, 응답 

- SYN-RECEIVED : SYN 요청을 받고 응답 대기 상태

- ESTABLISHED : 연결 수립 상태 ( 데이터 교환 가능 )

4 way HandShake ( deconnection )

1. Client가  CLOSE함수 호출 후 Server로 FIN segment 전송 후 FIN_WAIT1 상태로 대기

2. Server가 Client의 호출을 알고 CLOSE_WAIT 상태가 된 후 Client로 ACK segment 전송 

3. Client가 ACK segment를 받고 FIN_WAIT2 상태로 변환 후 Server 는 CLOSE() 함수를 호출하고 Client로 FIN segment 전송

4. Client가 FIN segment을 받고 Server로 ACK segment를 전송 후 TIME_WAIT 상태로 전환 후 CLOSED 상태로 변환

- CLOSE : 연결 전 기본 상태 ( 연결 없음 )

- FIN : 종료 요청

- CLOSE-WAIT : 상대의 FIN( 종료 요청 ) 을 받은 상태, 해당 FIN에 대한 ACK 를 전송 후 어플리케이션 종료를 알림

- FIN-WAIT-1 : 자신이 보낸 FIN에 대한 ACK 또는 상대 FIN 응답 대기 상태

- FIN-WAIT-2 : 자신이 보낸 FIN에 대한 ACK를 받고 상대 FIN 응답 대기 상태

- TIME-WAIT : 모든 FIN에 대한 ACK를 받고 연결 종료 된 상태
	      ( 새 연결과 겹치지 않게 일정 시간 대기했다 CLOSED 됨 )

0개의 댓글