Upstream, Downstream, Hop
네트워크 흐름 용어 정리
upstream은 요청을 넘기는 다음 단계, downstream은 보내온 이전 단계로 상대적 개념이다. hop은 경유지 하나를 지나는 절대적 단위.
Basics
개념
네트워크·프록시 문서를 읽다 보면 자주 나오는 세 용어다. 처음 보면 헷갈리는 이유는 upstream/downstream이 "누구 기준"인지에 따라 달라지는 상대적 개념이라는 것. 반면 hop은 경유지 수를 세는 절대적 개념이다. 이 상대/절대 구분을 잡으면 나머지는 자연스럽다.
- upstream — 내 기준에서 요청을 넘기는 다음 단계
- downstream — 내 기준에서 요청을 보내온 이전 단계
- hop — 라우터·프록시 같은 경유지 하나를 지나는 한 단계
upstream vs downstream
| upstream | downstream | |
|---|---|---|
| 기준 | 내 다음 단계 | 내 이전 단계 |
| 방향 | 서버 쪽 | 클라이언트 쪽 |
| 예시 (A → B → C → 서버, B 기준) | C | A |
실제 사용 예시
Nginx
upstream backend {
server 10.0.0.1:8080;
server 10.0.0.2:8080;
}
Nginx 입장에서 backend 서버들이 upstream. 요청을 보내는 브라우저가 downstream.
API Gateway
브라우저 → Gateway → Auth 서비스 → DB
- Gateway 입장 — Auth 서비스가 upstream, 브라우저가 downstream
- Auth 서비스 입장 — DB가 upstream, Gateway가 downstream
같은 노드라도 누구 기준이냐에 따라 upstream/downstream이 바뀐다.
Hop
- 패킷이 경유지를 하나 지날 때마다 hop이 1 증가
traceroute google.com으로 hop 수 확인 가능- HTTP 헤더
X-Forwarded-For에 hop마다 IP가 추가됨
클라이언트 → 프록시1 → 프록시2 → 서버
hop 1 hop 2 hop 3
더 보기
- Nginx —
upstream블록 설정 - Proxy — Forward Proxy와 Reverse Proxy에서 흐름 방향 구분
- API-Gateway — 여러 hop이 쌓이는 전형적 구조