Define My Life
article thumbnail

2023.09.27 - [Network/용어 및 개념] - [TCP] 3-Way handshake

TCP 4-way handshake 란?

TCP(Transmission Control Protocol)은 통신 시작을 위한 연결과정인 3-way handshake 과정을 거쳤습니다.
안전한 연결을 있다면 안전한 연결해제 또한 존재합니다. 이러한 과정을 4-way handshake입니다.


4-way handshake 동작방식

출처 : [TCP] 4-way Handshake란? (tistory.com)

동장 방식은 4단계로 이루어집니다.

1. Clinet > Server : FIN Flag

    > 클라이언트는 통신을 종료하고자 할 때 연결 종료를 시작하는 메시지를 서버에게 보냅니다.

    > 클라이언트는 데이터 전송이 완료되었음을 나타내는 FIN 플래그가 설정된 패킷을 서버로 보냅니다.
    > 클라이언트는 이때 FIN_WAIT 1 상태로 진입합니다.
       이 상태에서 클라이언트는 아직 서버로부터 전송이 덜된 패킷이나 재전송된 패킷에 대비합니다.

 

2. Server > Client : ACK Flag

    > 서버는 클라이언트의 FIN 플래그를 받아 데이터 전송이 완료되었음을 확인한 후 ACK 응답을 보냅니다.

    > 서버는 아직 보낼 데이터가 남아 있을 수 있으므로 연결을 종료하지 않습니다.

    > 서버는 CLOSE_WAIT 상태로 진입합니다.

 

3. Server > Client : FIN Flag

    > 서버도 통신을 종료하고자 할 때 서버는 FIN플래그 패킷을 클라이언트로 보냅니다.

    > 서버는 LAST_WAIT 상태로 진입합니다.

 

4. Client > Server : ACK Flag

    > 클라이언트가 서버로부터의 FIN 패킷을 받아 이를 확인하는 응답으로 ACK 패킷을 보냅니다.

    > 클라이언트는 TIME_WAIT 상태로 진입합니다.

    > 클라이언트의 ACK 패킷을 받은 서버는 완전히 연결을 종료합니다.

 

4개의 과정을 통해 클라이언트와 서버 간에 안전하고 데이터 손실이 없이 TCP 연결을 종료합니다.

FIN : 연결 종료

 

쉽게 생각하자면!

손님이 "웹 서버"라는 음식점에서 식사를 마쳤습니다.

손님(Client), 사장(Server)

1. 손님 : "계산은 카드로 계산하겠습니다" (FIN)

2. 사장 : "네 손님 카드 받았습니다. 잠시만 기다려주세요!" (ACK)

3. 사장 : "손님 결제완료 되었습니다. 식사 맛있게 하셨나요?" (FIN)

4. 손님 : "맛있게 잘 먹었습니다. 다음에 또 방문하겠습니다" (ACK)

'Network > 용어 및 개념' 카테고리의 다른 글

[TCP] 3-Way handshake  (0) 2023.09.27
profile

Define My Life

@BlackC

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!