맨위로가기

굿풋

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

굿풋은 네트워크를 통해 성공적으로 전송된 유용한 데이터의 양을 나타내는 용어이다. 굿풋은 대역폭과 구분되며, 네트워크 환경, 굿풋 측정 방법, 데이터 전달 시간, 네트워크 성능 등 다양한 요소에 의해 영향을 받는다. 굿풋은 전송 시간과 데이터량의 비율로 계산되며, 패킷 생성 처리 시간, 전송 지연, 전파 지연, 대기 지연, NAT 변환 지연, 저장 후 전달 지연, 패킷 재전송 시간, 흐름 제어 및 혼잡 회피로 인한 지연 등이 데이터 전달 시간에 포함된다.

더 읽어볼만한 페이지

  • 네트워크 성능 - 대역폭 (컴퓨팅)
    대역폭은 통신 채널을 통해 단위 시간당 전송 가능한 데이터 양을 나타내는 용어로, 최대 비트 전송률, 정보 전송률, 유효 비트 전송률, 채널 용량 등 여러 의미로 사용되며, 데이터 전송 속도와의 차이를 이해하는 것이 중요하다.
  • 네트워크 성능 - 대기행렬이론
    대기행렬 이론은 1909년 에를랑에 의해 연구된 수학 이론으로, 서버, 대기실, 고객으로 구성된 시스템을 분석하며, 켄달의 표기법을 사용하여 대기열 모델의 특징을 나타내고, 컴퓨터 과학 등 다양한 분야에 응용되어 시스템 성능 분석 및 최적화에 활용된다.
굿풋
일반 정보
정의응용 프로그램 수준 처리량
설명통신 채널을 통해 유용한 정보가 전달되는 비율
관련 요소데이터 패킷 크기, 프로토콜 오버헤드, 재전송
상세 정보
측정 단위초당 비트 (bps), 초당 패킷 (pps) 등
영향 요인네트워크 혼잡
장비 성능
프로토콜 효율성
목표굿풋 최대화, 오버헤드 최소화
활용
사용 분야네트워크 성능 분석
애플리케이션 성능 테스트
서비스 품질 (QoS) 평가
관련 지표처리량 (Throughput), 지연 시간 (Latency), 패킷 손실률 (Packet Loss)
기타
주의 사항굿풋은 이론적인 최대 처리량보다 항상 낮음
관련 용어처리량 (Throughput)
대역폭 (Bandwidth)
오버헤드 (Overhead)

2. 굿풋의 개념

굿풋(Goodputeng)은 네트워크를 통해 데이터를 전송할 때, 응용 계층에서 실제로 목적지에 유효하게 도달하는 데이터의 전송률을 의미한다. 이는 이론적인 최대 전송 속도를 나타내는 대역폭과는 구별되는 개념이다.

데이터는 네트워크를 통해 전송되는 과정에서 패킷이라는 작은 단위로 나뉘며, 각 패킷에는 IP 헤더, TCP 헤더 등 실제 사용자 데이터가 아닌 제어 정보(오버헤드)가 포함된다. 또한, 이더넷과 같은 물리적 전송 매체에서도 프레임 헤더 등의 추가적인 오버헤드가 발생한다. 이러한 오버헤드로 인해 실제 사용자가 받는 유효 데이터의 양은 전체 전송량보다 적어지게 된다.

따라서 굿풋은 전체 대역폭에서 이러한 각종 오버헤드를 제외한 순수한 데이터 전송률을 나타내는 지표이다. 이 외에도 인터프레임 간격, 네트워크 혼잡으로 인한 충돌, TCP확인 응답 메커니즘, 상위 프로토콜(HTTP 등)의 동작 방식 등 다양한 요인이 실제 굿풋에 영향을 미친다.

2. 1. 굿풋과 대역폭의 차이

대역폭이 이론적으로 전송 가능한 최대 데이터 전송률을 의미하는 반면, 굿풋은 실제 네트워크 환경에서 다양한 오버헤드를 제외하고 목적지에 유효하게 도달하는 데이터의 양을 나타낸다. 파일은 네트워크를 통해 전송될 때 작은 단위의 청크, 즉 패킷으로 분할된다.

예를 들어, 이더넷 환경에서 IP 패킷의 최대 전송 단위(MTU)는 일반적으로 1500 바이트이다. 하지만 이 패킷 전체가 사용자 데이터는 아니다. 각 패킷에는 IPv4 헤더 정보(20바이트)와 TCP 헤더 정보(20바이트)가 포함되어야 한다. 따라서 실제 파일 데이터는 패킷당 최대 1460바이트(1500 - 20 - 20)만 담을 수 있다. (리눅스나 macOS 환경에서는 12바이트의 타임스탬프 정보가 추가되어 1448바이트로 제한되기도 한다.[1])

데이터는 다시 이더넷 프레임으로 캡슐화되어 전송되는데, 이 과정에서도 프레임 헤더 등 약 26바이트의 오버헤드가 추가된다. 결국 1460바이트의 데이터를 보내기 위해 실제로는 1526바이트(1460 데이터 + 20 IPv4 헤더 + 20 TCP 헤더 + 26 이더넷 오버헤드)가 전송되는 셈이다.

이러한 오버헤드를 고려하면, 100 Mbit/s 이더넷 회선의 최대 굿풋은 100 Mbit/s가 아니라, (1460 / 1526) × 100 Mbit/s ≈ 95.67 Mbit/s (초당 약 11.959 메가바이트)가 된다.

이 계산은 인터프레임 간격(프레임 전송 사이의 최소 시간 간격), 네트워크 혼잡으로 인한 충돌, TCP 확인 응답 전송에 따른 지연(왕복 지연 시간, TCP 윈도우 크기, 대역폭 지연 곱 참조), 그리고 HTTP와 같은 상위 프로토콜 자체의 오버헤드 등 실제 네트워크 환경에서 발생하는 추가적인 요인들을 고려하지 않은 것이다. 따라서 실제 사용자가 경험하는 굿풋은 네트워크 상황에 따라 이보다 더 낮아질 수 있다.

2. 2. 굿풋에 영향을 미치는 요소

파일이더넷을 통해 전송할 때는 데이터를 개별적인 조각(청크)으로 나누어야 한다. 이 조각들은 이더넷을 통한 IP최대 전송 단위(MTU)인 1500 바이트를 넘지 않아야 한다. 각 패킷에는 20바이트의 IPv4 헤더 정보와 20바이트의 TCP 헤더 정보가 추가된다. 따라서 실제 파일 데이터는 패킷당 최대 1460바이트만 전송될 수 있다. 리눅스나 macOS 환경에서는 12바이트의 타임스탬프 정보가 추가로 전송되어 데이터 크기가 1448바이트로 제한되기도 한다.[1]

데이터는 이더넷 프레임 단위로 전송되는데, 이 과정에서 패킷당 26바이트의 이더넷 오버헤드가 추가로 발생한다. 이러한 각종 헤더 정보와 제어 정보(오버헤드) 때문에 실제 사용자가 유용하게 사용하는 데이터 전송률인 '굿풋'은 이론적인 최대 전송 속도보다 낮아진다. 예를 들어, 100 Mbit/s 이더넷 환경에서 최대 굿풋을 계산하면 다음과 같다.

  • 데이터 크기: 1460 바이트
  • 총 프레임 크기: 1460 (데이터) + 20 (IP 헤더) + 20 (TCP 헤더) + 26 (이더넷 오버헤드) = 1526 바이트
  • 최대 굿풋 = (데이터 크기 / 총 프레임 크기) × 회선 속도 = (1460 / 1526) × 100 Mbit/s ≈ 95.67 Mbit/s (초당 11.959 메가바이트)


이 계산은 기본적인 프로토콜 오버헤드만을 고려한 것이다. 실제 환경에서는 다음과 같은 추가적인 요소들이 굿풋에 영향을 미친다.

  • 인터프레임 간격(IFG): 이더넷 프레임 사이에 필요한 최소한의 시간 간격(최소 96비트 시간)으로, 전송 효율을 떨어뜨린다.
  • 충돌: 네트워크 혼잡 시 발생하는 데이터 충돌은 재전송을 유발하여 굿풋을 감소시킨다. 충돌의 영향은 네트워크 부하에 따라 가변적이다.
  • TCP 확인 응답(ACK): TCP는 데이터 수신 확인을 위해 별도의 ACK 패킷을 전송하며, 이는 추가적인 오버헤드를 발생시킨다.
  • 왕복 지연 시간(RTT) 및 TCP 윈도우 크기: 데이터 전송 후 확인 응답을 받기까지 걸리는 시간(RTT)과 한 번에 전송할 수 있는 데이터 양(윈도우 크기)은 각 TCP 연결의 속도를 제한한다. 이는 대역폭 지연 곱(BDP) 개념과 관련이 있다.
  • 상위 계층 프로토콜 오버헤드: HTTP와 같은 응용 계층 프로토콜 자체의 오버헤드도 존재하며, 특히 작은 파일을 여러 번 전송할 때 굿풋에 영향을 미칠 수 있다.

3. 굿풋 측정 및 계산

굿풋(Goodput)은 특정 시간 동안 네트워크를 통해 성공적으로 전송된 유효한 데이터의 양을 측정하는 지표이다. 이는 전체 전송된 비트 수를 나타내는 스루풋(Throughput)과는 다른 개념으로, 프로토콜 오버헤드(헤더 정보, 제어 패킷 등)나 오류로 인해 재전송된 데이터를 제외하고 순수하게 목적지에 도달한 사용자 데이터만을 계산한다. 따라서 일반적으로 굿풋은 스루풋보다 낮거나 같은 값을 가진다.

굿풋을 측정하기 위해서는 일정 시간 동안 출발지에서 목적지로 전송된 총 데이터 양에서 프로토콜 오버헤드와 재전송된 데이터 양을 제외해야 한다. 간단하게는 특정 시간 동안 수신된 애플리케이션 계층의 데이터 크기를 측정하여 계산할 수 있다.

이론적으로 굿풋을 계산할 수도 있지만, 실제 네트워크 환경에서는 다양한 요인(네트워크 혼잡, 패킷 손실, 지연 시간 등)의 영향을 받기 때문에 이론값과 실제 측정값에는 차이가 발생할 수 있다. 네트워크 성능을 정확히 평가하기 위해서는 실제 환경에서의 굿풋 측정이 중요하다. 구체적인 계산 방식은 사용되는 프로토콜과 네트워크 환경에 따라 달라진다.

3. 1. 이더넷 환경에서의 굿풋 계산 예시

이더넷 환경에서 파일을 전송할 때는 데이터를 여러 개의 작은 조각으로 나누어 보낸다. 각 데이터 조각은 이더넷의 최대 전송 단위(MTU)인 1500 바이트를 넘지 않아야 한다.

데이터를 IP 패킷으로 만들 때, 헤더 정보가 추가된다. IPv4 헤더에 20 바이트, TCP 헤더에 20 바이트가 필요하므로, 하나의 패킷에 담을 수 있는 실제 파일 데이터는 최대 1460 바이트(1500 - 20 - 20)가 된다. 다만, 리눅스나 macOS 환경에서는 12 바이트의 타임스탬프 정보가 추가로 필요하기 때문에 데이터 크기는 1448 바이트로 제한될 수 있다.[1]

이 IP 패킷은 다시 이더넷 프레임으로 포장되어 전송되는데, 이 과정에서 이더넷 프레임 자체의 오버헤드(헤더, 풋터 등)로 26 바이트가 추가된다. 따라서 1460 바이트의 데이터를 전송하기 위해 실제로는 1526 바이트(1500 바이트 IP 패킷 + 26 바이트 이더넷 오버헤드)가 전송되는 셈이다.

이러한 오버헤드를 고려했을 때, 100 Mbit/s 이더넷 환경에서의 최대 ''굿풋''(실질적인 데이터 전송률)은 다음과 같이 계산할 수 있다.

:(실제 데이터 크기 / 총 전송 크기) × 회선 속도 = (1460 바이트 / 1526 바이트) × 100 Mbit/s ≈ 95.67 Mbit/s

이를 메가바이트 단위로 환산하면 약 11.959 MB/s이다.

하지만 이 계산은 이론적인 최댓값이며, 실제 네트워크 환경에서는 다음과 같은 추가적인 요소들 때문에 굿풋이 더 낮아질 수 있다.

  • 이더넷 오버헤드: 인터프레임 간격(프레임 전송 사이의 최소 시간 간격)이나 네트워크 혼잡으로 인한 충돌 등은 계산에 포함되지 않았다.
  • TCP 오버헤드: TCP는 데이터 수신 확인을 위해 응답(Acknowledgement) 패킷을 주고받는데, 이로 인한 오버헤드가 발생한다. 이는 왕복 지연 시간(RTT) 및 TCP 윈도우 크기와 함께 전송 속도에 영향을 미친다(대역폭 지연 곱 참고).
  • 애플리케이션 프로토콜 오버헤드: HTTP와 같은 상위 계층 프로토콜 자체의 오버헤드도, 특히 작은 파일을 전송할 때 굿풋에 영향을 줄 수 있다.

4. 데이터 전달 시간

굿풋은 전달된 정보량을 총 전달 시간으로 나눈 비율이다. 데이터 전달 시간은 굿풋에 영향을 미치는 중요한 요소 중 하나로, 이 시간에는 패킷 생성 및 처리, 전송 지연, 전파 지연, 대기 지연, NAT 변환, 저장 후 전달 처리, 패킷 재전송 등 다양한 지연 요소들이 포함된다.

4. 1. 데이터 전달 시간에 포함되는 요소

굿풋은 전달된 정보량을 총 전달 시간으로 나눈 비율이다. 이 전달 시간에는 다음과 같은 요소들이 포함된다.

  • 패킷 생성 처리 시간 (네트워크 전체 용량을 사용하지 않는 소스) 또는 충돌 회피와 같은 프로토콜 타이밍으로 인해 발생하는 패킷 간의 시간 간격
  • 데이터 및 오버헤드의 전송 지연 (데이터 양을 비트 전송률로 나눈 값)
  • 전파 지연 (거리를 파동 전파 속도로 나눈 값)
  • 패킷 대기 지연
  • NAT 변환 지연
  • 중간 노드의 저장 후 전달 처리 지연
  • 패킷 재전송 시간 (혼잡한 라우터에서 패킷이 삭제되거나 비트 오류가 감지된 경우)
  • 흐름 제어, 혼잡 회피, 처리 지연 등으로 인한 지연된 승인 시간

5. 굿풋과 네트워크 성능

굿풋은 네트워크를 통해 실제로 유효한 데이터가 전달되는 속도를 나타내는 지표로, 네트워크 성능을 평가하는 데 중요한 역할을 한다. 굿풋은 특정 시간 동안 성공적으로 전달된 정보량(페이로드)을 해당 정보를 전달하는 데 걸린 총 시간으로 나누어 계산한다.

총 전달 시간은 단순히 데이터 전송 시간만을 의미하는 것이 아니라, 데이터가 소스에서 목적지까지 도달하는 데 영향을 미치는 다양한 지연 요소들을 포함한다. 주요 지연 요소는 다음과 같다.


  • 패킷 생성 처리 시간: 데이터를 보내는 측(소스)이 전체 네트워크 용량을 사용하지 않을 때 발생하는 처리 시간이다.
  • 패킷 간 시간 간격: 충돌 회피와 같은 프로토콜 타이밍으로 인해 패킷 전송 사이에 발생하는 시간 간격이다.
  • 데이터 및 오버헤드 전송 지연: 데이터와 헤더 등 부가 정보(오버헤드)를 전송하는 데 걸리는 시간으로, 데이터 양을 비트 전송률로 나눈 값이다.
  • 전파 지연: 신호가 물리적인 매체를 통해 소스에서 목적지까지 이동하는 데 걸리는 시간으로, 거리를 파동 전파 속도로 나눈 값이다.
  • 패킷 대기 지연: 네트워크 장비(라우터 등)에서 패킷이 처리되기 전에 대기열에서 기다리는 시간이다.
  • NAT 변환 지연: NAT 장비에서 IP 주소와 포트 번호를 변환하는 데 걸리는 시간이다.
  • 중간 노드 저장 후 전달 지연: 중간 네트워크 노드(라우터 등)에서 패킷 전체를 수신한 후 다음 노드로 전달하기까지 걸리는 처리 지연 시간이다.
  • 패킷 재전송 시간: 네트워크 혼잡으로 인해 라우터에서 패킷이 삭제되거나, 전송 중 비트 오류가 감지되어 패킷을 다시 전송하는 데 걸리는 시간이다.
  • 지연된 승인 시간: 흐름 제어, 혼잡 회피, 처리 지연 등의 메커니즘으로 인해 수신 확인(승인)이 지연되는 시간이다.


본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com