소켓 오류는 신호별로 close, retry, backoff를 나눠야 한다
같은 실패처럼 보여도 EOF, reset, timeout, 부분 전송은 버퍼 위치와 재시도 기준이 다르다.
신호
의미
처리 기준
EOF
상대가 정상 종료를 시작
남은 버퍼 처리 후 close
RST
중간 또는 상대가 연결을 리셋
요청 단위 재시도 가능성 확인
Timeout
응답 없는 경로 또는 상대 지연
backoff와 timeout 값을 분리
EAGAIN
non-blocking에서 지금은 읽을 수 없음
ready 이벤트까지 대기
Partial I/O
read/write가 요청한 바이트 일부만 처리
offset을 보존하고 이어서 처리