2012-12-04 3 views
2

4MBits 네트워크가 있고 데이터 처리량을 계산한다고 가정하면 최대 전송률에서 이더넷/IP/TCP 헤더의 오버 헤드를 뺀 값을 고려합니다. 웹에서 읽기 TCP 세그먼트의 MSS (최대 세그먼트 크기)가 576 - 20 - 20이며 TCP 및 IP 헤더 오버 헤드로 인해 데이터의 93 %가 오버 헤드가된다는 것을 알았습니다. 내 4MBits 링크 중 93 %를 사용하여 데이터를 전송합니다. 이제 링크 오버 헤드는 어디에 있습니까? 추가해서는 안됩니까? 잘못하지 않으면 이더넷 헤더가 약 46 바이트이므로 최종 합계는 576 - 20 - 20 - 46 = 490이되어 데이터 처리량은 85 %가되지만 잘못된 결과가 있습니까?네트워크 처리량 계산

+0

최소 MSS입니다. 일반적으로 1460과 같이 될 것입니다. – cnicutar

+0

TCP가 사용되는 경우 링크의 최대 데이터 처리량을 계산하기 위해 링크 계층 헤더를 계산해야합니까? – user1777914

+1

본인의 질문에 대한 답변을 시도하지 않았습니다. 나는 *에 답을 하였지만 잘못하고있다. – cnicutar

답변

3

그냥 아래로 작업하십시오. 일반 이더넷 프레임 (점보 프레임 없음, VLAN 태그 없음)은 1542 bytes이며, 페이로드는 1500 bytes 일 수 있습니다. 옵션이없는 Ipv4 헤더는 20 bytes이고 옵션이없는 TCP 헤더는 20 bytes입니다. 따라서 1460 bytes 가능한 페이로드는 1542 byte 링크 계층 프레임으로 끝납니다. 따라서 효율성은 1460/1542=0.9468223086900129이며 최대 처리량은 3.7872892347600517Mbps입니다.

그러나 일반적으로이 수치는 낮을 것입니다. TCP 세션이 설정되고 해당 링크의 유일한 사용자 인 경우 전이중 링크를 사용할 수있는 연속 스트림의 이론적 최대 속도입니다. 또한 약간의 시간 동안 약간의 속도로 링크를 보내 자마자 링크가 혼잡 해지면 방울이 보일 것이고 느린 시작 때문에 실제 TCP 처리량이 크게 떨어질 수 있습니다.

링크가 무선 (802.11) 인 경우 RTS/CTS 메커니즘으로 인해 계산이 훨씬 복잡해 지지만 활성 사용자 한 명당 /2 정도이며 이는 손실을 통합하지 않고 비현실적입니다.

+1

링크의 일부를 소비하는 tcp로부터의 ack 패킷도 고려해야합니까? 페이로드가 없더라도 처리량을 줄이는 헤더가 있습니다. 맞습니까? – user1777914

+0

아니요, 지속적으로 스트리밍하고 지연 ACK (기본값이어야 함) 인 경우 ACK는 일반 데이터 패킷의 헤더에 포함됩니다. – KillianDS

2

일반적으로이 프로토콜은 네트워크 처리량과 단순한 패킷 오버 헤드에 영향을 미칠 수 있습니다. 이더넷/IP/TCP 네트워크에서 처리량을 측정하기를 원하지만 그 프로토콜의 패킷 오버 헤드의 영향 만 고려하는 것이 아닙니다. TCP는 연결 지향 프로토콜이며 패킷이 수신되었는지 여부를 알리는 신호를 사용합니다. user1777914는 ACK에 관한 표시를 놓쳤지 만 무언가에 관한 것이 었습니다. 그들은 더 이상 공간을 차지하지 않지만 패킷 전송을 지연시킬 수 있습니다. 대기 시간이 늘어남에 따라 전체 네트워크 처리량은 응용 프로그램이나 호스팅 OS가 응답을 예상하는 빈도에 따라 감소 할 수 있습니다.

W. Richard Stevens는 TCP/IP에 놀라운 책을 썼습니다. Here은 이론적 인 TCP 성능, 영향을 미치는 요인 및 계산 방법을 설명하는 예외입니다.

Nagle 알고리즘도 지연 시간을 줄이는 데 도움이되지만 사용하지 않으면 처리 속도가 느려질 수 있습니다.