HTTP Overhead 란?

2023. 6. 21. 15:42·Computer Science/HTTP

오버헤드 란?


오버헤드(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 프로토콜에서 더 줄어들게 되는 것도 이 때문이라고 말할 수 있다.

 


참고

  • https://serverfault.com/questions/1006063/how-to-get-size-of-http-request-and-response-including-protocol-overhead
  • https://velog.io/@mygomi/TIL-70-프로그래밍-용어-오버헤드-Overhead
'Computer Science/HTTP' 카테고리의 다른 글
  • [HTTP] HTTP의 멱등성 · 안정성 · 캐시성
  • [HTTP] HTTPS와 SSL 인증서
  • [HTTP] HTTP Status Code
  • [HTTP] HTTP 메서드 종류 & 요청 흐름
s_y_130
s_y_130
  • s_y_130
    About SY
    s_y_130
  • 전체
    오늘
    어제
    • 분류 전체보기 (437) N
      • JAVA (54)
        • 더 자바 8 (0)
        • JAVA (41)
        • JAVA (JVM) (13)
      • Computer Science (86)
        • CS Basic (7)
        • OOP (11)
        • Design Pattern (16)
        • Network (8)
        • HTTP (6)
        • WEB (22)
        • OS (16)
      • DataBase (29)
        • DB theory (15)
        • MySQL (14)
        • Redis (0)
      • Collection Framework (1)
        • 구현 (1)
      • Data Structure (14)
        • Linear (9)
        • Non-Linear (5)
      • Algorithm (19)
        • Basic (12)
        • 응용 (2)
        • 완전 탐색(Brute Force) (1)
        • 다익스트라 (1)
        • Algorithm Problem (3)
      • Spring (104)
        • 스프링 핵심 원리 - 기본편 (9)
        • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (7)
        • 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 (11)
        • 스프링 DB 1편 - 데이터 접근 핵심 원리 (6)
        • 스프링 DB 2편 - 데이터 접근 활용 기술 (10)
        • 스프링 핵심 원리 - 고급편 (13)
        • 스프링 부트 - 핵심 원리와 활용 (9)
        • Spring Security 6.x (2)
        • Spring Batch (2)
        • Spring Cloud로 개발하는 MSA (1)
        • 재고시스템으로 알아보는 동시성이슈 해결방법 (4)
        • 개념 (27)
        • 테스트 (0)
        • Annotation (1)
        • Error Log (2)
      • TEST (0)
        • 부하 테스트 (0)
        • Practical Testing: 실용적인 테스트.. (0)
      • JPA (40)
        • 자바 ORM 표준 JPA 프로그래밍 (12)
        • 1편- 실전! 스프링 부트와 JPA 활용 (7)
        • 2편- 실전! 스프링 부트와 JPA 활용 (4)
        • 실전! 스프링 데이터 JPA (6)
        • 실전! Querydsl (6)
        • 개념 (5)
      • 백엔드 부트캠프[사전캠프] (35)
        • TIL (12)
        • 문제풀이 (23)
      • 백엔드 부트캠프 (5)
        • Calculator (3)
        • Kiosk (2)
      • Open Source (0)
      • Book Study (1)
        • Morden Java in Action (1)
        • Real MySQL 8.0 Vol.1 (0)
        • TDD : By Example (0)
      • AWS (0)
        • EC2 (0)
      • git (2)
      • AI (22)
        • Machine Learning (17)
        • Deep Learning (0)
        • TensorFlow (1)
        • PyTorch (1)
        • YOLO (1)
        • Data Analysis (0)
        • Ai code Error (1)
        • Numpy (1)
      • MY (0)
      • WEB (15)
        • Django (3)
        • WEB 개념 (1)
        • React (1)
        • Maven (10)
      • Python (6)
      • 기초수학 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_y_130
HTTP Overhead 란?
상단으로

티스토리툴바