我需要公式来准确计算1 Gig Nic卡的带宽。我正在做的是以1Gbps的速度发送第2层数据包,但是我的软件显示6oo Mbps。

整个实验是背对背的。没有交换机,没有路由器。

这是我所做的。

// LinkSpeed = 1Gb

UINT nBandwidth =   LinkSpeed/100;//Mbps


nBandwidth = nBandwidth/8; //Bytes/sec

nBandwidth = nBandwidth/FrameLength;
//Frames/Sec. Frame Length = 1518

UINT FramesPerBurst = (nBandwidth*Sleeptime)/1000;
//Frames/Burst

UINT nBufferSpaceNeededPerFrame = FrameLength-4 + sizeof(dump_bpf_hdr));


UINT nTxBufferSize = FramesPerBurst * nBufferSpaceNeededPerFrame;

unsigned char* pTxBuffer = new
unsigned char[m_nTxBufferSize];

最佳答案

在以太网中,还必须考虑interframe gap,该时间至少为96个量子时间,即,量子时间是发送比特的时间,即GigaEthernet中的1ns(1秒/ 1,000,000,000)。

另外,如果发生碰撞,将有backoff time,该量子是在0到2 ^ -1之间随机选择的。

关于c++ - 需要1千兆网卡的精确带宽的公式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/343025/

10-10 21:38