Network

Timeout과 3 Way-Handshake

gamjadori 2024. 8. 21. 15:02
728x90

<Timeout>

  • 프로그램이 특정한 시간 내에 성공적으로 수행되지 않아서 진행이 자동적으로 중단되는 것
  • 서버와 클라이언트가 데이터를 주고 받는 과정(3 Way-Handshake)을 수행 중, 원활하지 않으면 타임아웃이 발생

3 Way-Handshake이란?

  • client와 server가 본격적으로 데이터에 대한 요청과 응답을 주고 받기 전에 연결을 맺는 과정
  • 해당 과정이 수행되면 양쪽 모두 데이터를 전송할 준비가 되었다(신뢰성 보장)는 것을 보장

<Timeout 종류>

1. Connection timeout

  • SYN을 보내고 ACK가 올 때까지 기다리는 동안 발생할 수 있는 타임아웃으로 서버에 연결되기까지의 소요 시간

2. Socket timeout

  • Server에서 데이터를 여러 개의 패킷으로 나눠 보내는 과정에서 발생할 수 있는 타임아웃으로, 나눠 보낸 각 패킷의 도착 시간이 지정한 시간을 넘기면 발생 (개별 패킷 응답 시간)

3. Read timeout: Connection 이후, 응답 받을 때까지의 소요 시간

4. Request timeout: Connection 이후, 서버가 일정 시간 동안 클라이언트가 request하지 않으면 사용하지 않는다고 간주해 Connection 단절