오버헤드 란?
오버헤드(overhead)가 됐다라는 말은, 처리 시간 및 메모리 등이 추가적으로 사용되는 현상을 말한다.
처리 시간이 추가된다는 것을 예로 들면, A라는 처리를 실행한다면 3초 걸린다고 했는데, 안전성을 고려하여 추가로 B라는 처리를 요청한 결과 처리시간이 10초가 걸렸다고 하자. 그러면, 이 때 오버헤드는 7초 이게 된다.
반대로 7초가 걸리는 B를 개선해 A+B 처리를 한 결과 처리시간이 총 5초가 되었다면, 오버헤드가 5초 단축되었다고 말할 수 있다.
HTTP(Protocol) 오버헤드
HTTP(프로토콜) 오버헤드란, 네트워크를 통해 대상으로 라우팅되는 데이터와 함께 전송되어야하는 정보를 말하며, 올바른 대상에 도달하기 위해 전송중인 데이터에 추가로 보내지는 정보라 보면 된다.
이게 무슨말이냐 하면, 원래 정보 전송 기능 자체에는 내가 보내고자 하는 대상에게 제대로 도착했는 지는 확인할 길이 없는데, 여기에 추가적인 데이터를 실어 원하는 대상을 정확히 찾아내게 하는 것이다. 즉, '원하는 대상을 정확히 찾아내어'라는 간접적인 처리를 프로토콜 오버헤드를 통해 하는 것이다.
물론 추가적인 데이터 안에는 전송중인 데이터와 관련없는 정보들이 담겨 있어 오버헤드가 발생되지만, 출발지 및 도착지 주소와 같이 주 기능을 보완해줄 수 있는 것이다. 따라서 프로토콜 오버헤드가 있기에 정보 전송의 신뢰성을 높일 수 있고 시스템을 안정적으로 운용할 수 있게 된다.
통상 패킷/프레임 등의 선두에 있는 헤더(Header) 상에 위치하기에 Header라고도 한다.
정리하자면, 기본적인 HTTP 를 처리할때는 5초가 걸린다고 했을 때, 수 많은 트래픽중에 예를 들어 로드밸런서나 특정 장비에서 들어오는 트래픽을 걸러내기 위해서 HTTP 헤더에 도착지 정보같은 내용들을 넣게 될수 밖에 없게 되는데, 이러한 헤더 정보를 통해 트래픽을 거르게 되면 안정성이 확보되지만 결국은 작은 정보라도 TPS(전송시간)가 늘어나게 되는데, 거기서 HTTP 오버헤드가 발생한다고 말하는 것이다.
※ 참고
목적
- 정보 전송의 신뢰성 확보 및 시스템의 안정적 운용
성격
- 실제 운반되는 정보(페이로드)에 추가되는 성격의 운용 및 유지보수를 위한 신호
정보
- 각 전송 구간별 페이로드의 종류,형태,출발지 및 도착지 주소, 운용 유지보수 정보 등
위치
- 통상, 오버헤드는 패킷/프레임 등의 선두에 있는 헤더(Header) 상에 위치함
[참고] ☞ MAC 헤더, IP 헤더, TCP 헤더, DNS 헤더, HTTP 헤더 등 참조
실생활 예를 들자면, 유선 인터넷보다 WIFI에서 대역폭(연결을 통해 전송 될 수있는 정보의 양)이 더 낮아지는 이유도 프로토콜 오버헤드 때문이다. 무선 라우터에서 전송되는 신호들은 공중을 통해 이동하므로 가로채기 쉽기 때문에, 고로 보안, 권한 부여 등 추가적으로 필요한 정보들이 더욱 많아져 전송 시 매우 큰 헤더들을 포함하게 되고, 헤더가 차지하는 부분이 많아짐에 따라 실제 데이터에서 사용할 수 있는 부분이 유선으로 연결된 컴퓨터보다 WIFI 프로토콜에서 더 줄어들게 되는 것도 이 때문이라고 말할 수 있다.
참고