티스토리 뷰

3 way handshaking - 네트워크 연결 과정

1. 클라이언트는 서버에 연결 요청을 위해 SYN 패킷을 보냄

2. 서버는 SYN을 받고 SYN+ACK을 보냄, 연결 요청 수락

3. 클라이언트는 SYN+ACK을 받고 ACK을 보낸 후 통신 시작

 

 

4 way handshaking - 네트워크 연결 해제 과정

 

1. 클라이언트는 서버에게 연결을 종료한다는 FIN 패킷을 보냄

2. 서버는 FIN을 확인했다는 ACK을 클라이언트에 보냄

3. 보낼 데이터가 남아있는 경우 모두 전송 후 FIN 보냄

4. 클라이언트는 FIN을 받고 ACK을 보냄, 서버는 ACK을 받은 후 소켓을 닫음, 이후 클라이언트도 소켓을 닫음

 

 

CLOSE-WAIT

서버는 ACK을 보내고 CLOSE-WAIT 상태에서 클라이언트에게 보낼 데이터가 남아있는 경우 데이터를 모두 보내고 FIN을 보냄

 

TIME-WAIT

클라이언트는 서버로 부터 받지 못한 데이터가 있을 것을 대비하여 일정 시간동안 세션을 남겨놓고 패킷을 기다리기 위해 ACK을 보내고 TIME-WAIT 상태로 대기함,

서버로부터 FIN을 받고 클라이언트에서 ACK을 보낸 후 닫아버리면 ACK 패킷이 유실되는 경우 정상적인 종료가 불가능함

 

 

TCP Header

Control Flag (플래그비트, 6bit): 패킷이 어떤 내용을 담고 있는 패킷인지 나타냄

각 비트는 URG, ACK, PSH, RST, SYN, FIN 의미를 가짐

댓글