분산 시스템은 네트워크 위에 세워집니다. 따라서 네트워크의 성질을 이해하면 분산 시스템의 많은 행동이 자연스럽게 설명됩니다. 이 해설에서는 통신을 떠받치는 계층과 그 변동성을 살펴봅니다.
계층 모델
통신은 여러 계층의 협력으로 이루어집니다. 아래 계층은 물리적 전송을, 위 계층은 의미 있는 자료의 흐름을 다룹니다.
그림 1. 간소화된 통신 계층
지연과 지터
지연(latency)은 메시지가 도달하는 데 걸리는 시간이고, 지터(jitter)는 그 지연의 변동입니다. 분산 시스템은 평균 지연뿐 아니라 지터까지 고려해야 합니다. 변동이 크면 타임아웃과 재시도 설계가 훨씬 까다로워집니다.
신뢰성과 재전송
물리 계층은 메시지를 잃을 수 있습니다. 위 계층은 이를 보완하기 위해 확인 응답과 재전송을 사용합니다. 신뢰성은 공짜가 아니며, 재전송은 지연과 부하를 키웁니다.
한계
“빠른 네트워크”라는 표현은 맥락 없이 의미가 없습니다. 같은 연결도 시간대, 경로, 부하에 따라 지연과 손실이 달라집니다.
부하와 혼잡
네트워크는 공유 자원입니다. 많은 흐름이 한 경로에 몰리면 혼잡이 발생하고, 이는 지연과 손실로 나타납니다. 혼잡 제어는 송신 속도를 조절해 전체가 무너지지 않게 만드는 절차입니다.
실용적 관점
- 측정은 여러 시점과 조건에서 반복해야 의미가 있습니다.
- 단일 수치는 특정 경로와 시점의 결과일 뿐 보편적 보장이 아닙니다.
- 환경(기기, 소프트웨어 버전, 물리적 연결)이 바뀌면 측정값도 달라집니다.
네트워킹을 이해하면 분산 시스템의 많은 “왜 이렇게 동작하는가”에 대한 답이 보입니다.