반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

/var/log/messages

4-way handshaking 본문

SUSE

4-way handshaking

로만로만 2024. 4. 1. 14:38
반응형

4-way handshaking은 TCP/IP 프로토콜을 사용하여 통신을 종료하는 과정입니다. 이 과정은 클라이언트와 서버 간의 연결을 안전하게 종료하기 위해 사용됩니다. 이 글에서는 4-way handshaking의 과정을 단계별로 설명하고, 그 중요성을 강조합니다.

 

 

서로 연결 종료를 했을 때, 실행이 되는 과정입니다.

간단하게 표현하면 close() 시스템 콜을 사용한 노드가 FIN 패킷을 전송 후, ACK를 주고받는 과정인데, 3-way와는 다른 점이 보입니다. 3-way‘SYN, ACK’ 패킷 동시 송신을 했는데, 이 단계에서는 그 ‘FIN, ACK’ 패킷 동시 송신 과정이 없습니다. 이유는 서로가 연결을 안전하게 종료하기 위함입니다. , 서로가 연결 종료 준비를 완로 후 종료하는 흐름입니다.

 

이 과정에서 문제를 자주 일으키는 요소가 있습니다. 바로, ‘CLOSE_WAIT’입니다. 그림을 자세히 보시면, ‘LAST_WAIT’은 상대방으로부터 신호를 받지 않고, ‘CLOSE_WAIT’, 즉 연결을 종료할 준비 완료가 되어야만 연결 종료를 할 대상에게 FIN 패킷을 전송합니다. 만약, 이때 정리가 되지 않으면 ‘CLOSE_WAIT’ 상태에서 ‘LAST_WAIT’으로 넘어가지 못하는 상태가 됩니다. , 연결 종료가 불가능합니다. 많다, 적다의 절대적인 지표는 존재하지 않지만, 이 상태인 소켓이 많으면 무엇이 문제인지 확인할 필요는 있습니다. 어플리케이션의 코드 문제일 수도 있고, 서버 리소스의 부족일 수도 있습니다.

 

이미지 출처:
https://velog.io/@yhm8622/TCP-4-way-Handshake