timeout 종류

twoStones·2022년 4월 8일

Connection Timeout

  • tcp는 3 way handshake 로 서버와 연결을 맺는다
  • 위 작업이 수행되는데 걸린 총 시간을 connection time 이라고 한다
  • 커넥션 타임을 무한으로 설정할 수는 없으니까 일정 시간을 지정하게 되는데 그 시간이 초과하면 타임아웃이 발생한다
  • 즉, 일정 시간동안 연결을 하려고 하는데 그 시간동안 연결을 하지 못한 것
  • 맛집에 들어갈려고 30분을 대기를 했는데 들어가지 못 함

Socket Timeout

  • 서버와 클라이언트는 연결을 맺은 후 데이터를 여러 개의 패킷으로 주고 받는다
  • 각 패킷이 전송될 때 시간 갭이 발생할 수 있는데 이 시간이 초과된 것
  • 전체 연결이 타임아웃이 발생한 것이 아니고 개별 패킷이 타임아웃이 발생

Read Timeout

  • 맛집에 들어감(connection)
  • 주문을 하고 10분을 기다렸으나 음식이 나오지 않았음.
  • 그래서 가게를 나옴
  • 요청에 대한 응답이 없어서 발생
  • 주고 받는 데이터의 양이나 네트워크 속도에 따라서 대응을 다르게한다. 만약 데이터의 양이 크다면 이를 분할해서 받을 수 있도록 API 자체 Spec을 변경하거나 Retry 전략을 사용할 수 있고, 속도가 느려서 발생하는 상황이라면 전반적으로 네트워크 대역폭 증가를 위한 인프라 작업을 고려할 수 있다.

참고

profile
일단 작성

0개의 댓글