TCP 3-way-handshake란 TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.
- Client에서 Server로 접속을 요청하는 SYN 패킷을 보낸다.(SYN-SENT상태)
- Server는 SYN 요청을 받고 요청을 수락한다는 ACK와 SYN flag가 설정된 패킷을 Client로 보내고 응답을 기다린다.(SYN-RECEIVED 상태)
- Client는 서버로부터 수락 응답을 받고 다시 Server로 ACK 패킷을 보낸다.
- 이후로부터는 연결이 이루어지고 데이터를 주고 받을 수 있게 된다.
위와 같은 방식으로 통신하는 것으로 신뢰성을 보장한다.
4-way handshake는 세션을 종료하기 위해 수행되는 절차이다.
- Client가 연결을 종료하겠다는 FIN플래그를 전송한다.
- Server는 알겠다고 ACK를 보낸 후에 통신 종료 준비를 시작한다.
- Server가 통신 종료 준비가 되었을 때 FIN을 Client로 보낸다.
- Client는 해당 패킷을 받고 마지막 작별인사로 ACK를 보낸다.
- ACK를 받은 Server는 통신을 종료한다.
- Client는 혹여나 FIN보다 뒤늦게 온 패킷이 있을 경우를 대비해 일정시간(디폴트 240초) 세션을 남겨놓는다.(TIME_WAIT)
https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-22편-TCP-3-WayHandshake-4-WayHandshake
'CS > Network' 카테고리의 다른 글
URI / URL / URN (0) | 2022.08.10 |
---|---|
HTTP Status Code (0) | 2021.06.10 |
HTTP/ HTTPS (0) | 2021.04.27 |