CS/Network

3way handshake & 4way handshake

간지나제 2021. 6. 9. 11:30

TCP 3-way-handshake란 TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.

  1. Client에서 Server로 접속을 요청하는 SYN 패킷을 보낸다.(SYN-SENT상태)
  2. Server는 SYN 요청을 받고 요청을 수락한다는 ACK와 SYN flag가 설정된 패킷을 Client로 보내고 응답을 기다린다.(SYN-RECEIVED 상태)
  3. Client는 서버로부터 수락 응답을 받고 다시 Server로 ACK 패킷을 보낸다.
  4. 이후로부터는 연결이 이루어지고 데이터를 주고 받을 수 있게 된다.
    위와 같은 방식으로 통신하는 것으로 신뢰성을 보장한다.

4-way handshake는 세션을 종료하기 위해 수행되는 절차이다.

  1. Client가 연결을 종료하겠다는 FIN플래그를 전송한다.
  2. Server는 알겠다고 ACK를 보낸 후에 통신 종료 준비를 시작한다.
  3. Server가 통신 종료 준비가 되었을 때 FIN을 Client로 보낸다.
  4. Client는 해당 패킷을 받고 마지막 작별인사로 ACK를 보낸다.
  5. ACK를 받은 Server는 통신을 종료한다.
  6. 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