cs/ODOQ

[ODOQ] Connection Timeout, Socket Timeout, Read Timeout

icodesiuuuu 2025. 1. 4. 17:02

[One Day One Question]

Connection Timeout, Socket Timeout, Read Timeout에 대해서 설명해 주세요.


 

Connection Timeout, Socket Timeout, Read Timeout은 네트워크 프로그래밍에서 연결과 통신 과정에서 발생할 수 있는 서로 다른 시간 초과 조건을 나타냅니다

 

 

1. Connection Timeout

  • 설명:
    • 클라이언트가 서버에 연결을 시도할 때, 연결이 완료되기까지 허용되는 최대 시간입니다.
    • 이 시간 동안 서버가 응답하지 않으면 연결 시도가 중단되고 오류가 발생합니다.
  • 주요 사용 사례:
    • 서버가 응답하지 않거나 네트워크 장애로 인해 연결이 지연될 때, 무한히 대기하지 않고 일정 시간 후에 요청을 중단합니다.
  • 발생 시점:
    • TCP 연결의 3-way handshake(SYN, SYN-ACK, ACK) 과정에서 발생.
  • 예시:
    • 클라이언트가 http://example.com에 연결을 시도했으나 서버가 응답하지 않으면 Connection Timeout 발생.

 

 

2. Socket Timeout (Request Timeout)

  • 설명:
    • 클라이언트와 서버 간 데이터 통신을 위해 열린 소켓에서 데이터 송수신 과정에서 발생하는 시간 초과입니다.
    • 소켓을 통해 데이터를 보낼 때 서버가 특정 시간 내에 응답하지 않으면 Timeout이 발생합니다.
  • 주요 사용 사례:
    • 서버와 연결이 성공적으로 이루어졌지만, 데이터 송수신 과정에서 지연이 발생할 경우 일정 시간 내에 요청을 중단.
  • 발생 시점:
    • 소켓이 열려 있는 상태에서 데이터가 송수신될 때.
  • 예시:
    • 서버로 요청을 보낸 후 응답이 늦게 도착하면 Socket Timeout 발생.

 

 

3. Read Timeout

  • 설명:
    • 클라이언트가 요청을 보낸 후, 서버로부터 데이터를 읽는 데 허용된 최대 시간입니다.
    • 연결은 성공적으로 이루어졌지만, 서버가 데이터를 반환하는 데 너무 오래 걸리면 Timeout이 발생합니다.
  • 주요 사용 사례:
    • 서버가 처리가 느리거나 대기 시간이 길어 데이터 응답이 지연될 경우 요청을 중단.
  • 발생 시점:
    • 데이터 응답을 읽는 단계에서 발생. (예: HTTP 응답 헤더나 바디를 읽는 과정)
  • 예시:
    • 서버에서 클라이언트의 요청을 처리하는 데 시간이 오래 걸려 응답 데이터를 읽지 못하면 Read Timeout 발생.

 

 

유형 발생 단계 초점 예시
Connection Timeout 연결 설정(TCP handshake) 서버에 연결 시도 시간 초과 서버가 다운되거나, 방화벽/네트워크 문제로 인해 연결이 지연됨
Socket Timeout 데이터 송수신(소켓에서 I/O 작업) 요청 데이터 전송/응답 수신 시간 초과 연결된 후 데이터 송수신이 중단되거나 네트워크가 느려 데이터가 늦게 도달
Read Timeout 서버 응답 데이터 읽기 응답 데이터 수신 시간 초과 서버가 처리가 느려 데이터를 반환하지 못하거나, 응답이 너무 느리게 전달됨

 

 

  • Connection Timeout: 서버에 연결을 시도할 때 허용되는 시간.
  • Socket Timeout: 요청 데이터 전송/응답 수신 과정에서 소켓의 최대 대기 시간.
  • Read Timeout: 서버 응답 데이터를 읽는 데 걸리는 최대 시간.