[TL]请教网络发包时间计算问题

115 views
Skip to first unread message

Lei Lu

unread,
Feb 7, 2012, 11:53:25 AM2/7/12
to pon...@googlegroups.com
请教两个问题

1. 请问,如果我的网卡速度为 100 Mbit/s。那么我发送1MB的数据时间是否为: 1M*8/100 ?

2. 如果我的网卡速度为 100 Mbit/s,在全双工模式下,是否可能接受流量100Mbit/s同时发送100Mbit/s?

谢谢

WindyWinter

unread,
Feb 7, 2012, 11:59:52 AM2/7/12
to pon...@googlegroups.com
1. no

2. yes

Soli Deo gloria.

WindyWinter
Email: wi...@ream.at
梦.:如此短暂: http://d.ream.at


2012/2/8 Lei Lu <lule...@gmail.com>

Shuo Chen

unread,
Feb 7, 2012, 7:41:50 PM2/7/12
to TopLanguage
1. 这是理论上限,实际上通常要打9折。如果你用TCP传数据,除了TCP、IP、Ethernet各层的开销,
还要考虑慢启动等因素,假如连续发2MB数据,传第一个1MB和第二个1MB的时间有可能不一样。

hugo

unread,
Feb 7, 2012, 8:38:22 PM2/7/12
to pon...@googlegroups.com
1、九折是已经很高的值了
2、yes

--
---------------------------------------------------------
>>黄青青
>>E-mail:huogc...@gmail.com
>>blog:http://www.cnblogs.com/hugoclassic/
--------------------------------------------------------
秋风愁煞梅城别,飘零一人心谁解。纵使天涯流落去,身边也有飞舞蝶。

bronco

unread,
Feb 7, 2012, 9:29:01 PM2/7/12
to pon...@googlegroups.com
发送包到对方接收:
1:应用程序内存copy到网卡(协议栈);
2:网卡copy到交换机/路由;
3:中间经过N个交换机路由;(其中有排队时间以及网线传输)
4:对端网卡
5:对端网卡到内核;

每一步都要花时间;

jinhu wang

unread,
Feb 7, 2012, 9:59:06 PM2/7/12
to pon...@googlegroups.com
网卡好比是你小区的大门,它可能有很高的吞吐量,但是真正限速的地方是在各个路口和拥堵区。
如果你直接用纯ip或udp发包,出去的速度应该是很高的,即1M*8/100 

Shuo Chen

unread,
Feb 7, 2012, 10:06:38 PM2/7/12
to TopLanguage
就算你用 ip 或 udp,至少也要打 96 折。

On Feb 8, 10:59 am, jinhu wang <wangjinhu...@gmail.com> wrote:
> 网卡好比是你小区的大门,它可能有很高的吞吐量,但是真正限速的地方是在各个路口和拥堵区。
> 如果你直接用纯ip或udp发包,出去的速度应该是很高的,即1M*8/100 。
>

> 在 2012年2月8日 上午12:53,Lei Lu <lulei...@gmail.com>写道:
>
>
>
> > 请教两个问题
>
> > 1. 请问,如果我的网卡速度为 100 Mbit/s。那么我发送1MB的数据时间是否为: 1M*8/100 ?
>
> > 2. 如果我的网卡速度为 100 Mbit/s,在全双工模式下,是否可能接受流量100Mbit/s同时发送100Mbit/s?
>

> > 谢谢- Hide quoted text -
>
> - Show quoted text -

Lei Lu

unread,
Feb 7, 2012, 2:10:13 PM2/7/12
to pon...@googlegroups.com
谢谢 WindyWinter。

1. Sorry, 笔误, 应该是1M*8/100M ? 如果不对的话应该如何计算?

2012/2/7 WindyWinter <wi...@ream.at>

Lei Lu

unread,
Feb 7, 2012, 9:59:56 PM2/7/12
to pon...@googlegroups.com
谢谢大家解答,

1. 只考虑将数据放到网络中的时间,也就是在本地计算机上网卡消耗的时间。
2. 那就是说系统的瞬间吞吐量理论上可以达到 200Mbps(100Mbps的收包速率+100Mbps发包速率)。

ps,刚才用netpert测试了一下,确实可以,我一直以为发包+收包是100Mbps呢

2012/2/7 bronco <renfe...@gmail.com>:

jinhu wang

unread,
Feb 7, 2012, 10:55:25 PM2/7/12
to pon...@googlegroups.com
嗯,确实:)

WindyWinter

unread,
Feb 7, 2012, 11:00:33 PM2/7/12
to pon...@googlegroups.com
不是笔误的问题,是数据的传输速度不仅与网卡的吞吐量有关,可以用网卡的吞吐量计算上限(不可达上限),但是不能这么计算时间,因为数据不是像水经过水管一样传输的。
你可以看看计算机网络里讲数据链路层、网络层和传输层的东西,数据(有效载荷)的传输要经过好几层协议。


Soli Deo gloria.

WindyWinter
Email: wi...@ream.at
梦.:如此短暂: http://d.ream.at


2012/2/8 Lei Lu <l...@cs.wm.edu>

jinhu wang

unread,
Feb 8, 2012, 12:12:28 AM2/8/12
to pon...@googlegroups.com
协议层的处理时间往往是毫秒级的,对于以秒统计的传输基本可以忽略。
另外传输过程的时间消耗是在网卡之外。把数据发出去的时间损耗:操作系统的协议层处理+发包中断+网卡数据处理
前边chenshuo说的折扣应该是网卡自身的真实吞吐量跟外包装描绘的吞吐量的差异。

WindyWinter

unread,
Feb 8, 2012, 12:30:40 AM2/8/12
to pon...@googlegroups.com
我从来没听说过网卡真实吞吐量这个概念,希望知道的人指出下网卡到底存不存在“真实吞吐量”和“标示吞吐量”。

影响网路实际吞吐量的主要原因通常是出在PCI总线带宽、网线质量和传输层协议上。关于TCP对吞吐量的影响可以看 http://datacenter.chinabyte.com/201/11184201.shtml 

我觉得chenshuo说的折扣是指IP协议和数据链路层协议的额外开销。


Soli Deo gloria.

WindyWinter
Email: wi...@ream.at
梦.:如此短暂: http://d.ream.at


2012/2/8 jinhu wang <wangji...@gmail.com>

jinhu wang

unread,
Feb 8, 2012, 1:17:21 AM2/8/12
to pon...@googlegroups.com
网卡上有什么协议?

jinhu wang

unread,
Feb 8, 2012, 2:03:01 AM2/8/12
to pon...@googlegroups.com
这里把网卡和网络以及TCP杂糅在一起去讨论楼主的问题,是把问题复杂化了。
用网卡发数据还涉及不到网络。网卡简单的说就是个网口。硬说他引入的协议的话,那就是物理层协议。
1. 假设网线对端连的是个10M口,自协商后,你的网卡带宽就是10M。这时你的网卡带宽就降级了,这是只考虑网线两端的情况。
2. 从驱动的角度看,驱动有绕开操作系统自带的传输层协议栈的能力,可以直接线速发包,这里存在的时间损耗主要有发包中断的调度时间+网卡将数据加首尾,曼彻斯特编码。 这几个时间加起来可以控制在微秒级。
3.如果包是从再上一层的协议开始发起,例如udp或IP,那就得涉及到udp和ip协议栈的部分开销了,这里有个重要的东西就是eth 头的填充。你的对端mac头必须通过arp已经获取到,这个arp过程的耗时在发第一个包的时候需要考虑,例如你的网线几千米,这个过程应该还是蛮长的,如果对端没有回馈arp信息,你的包很可能发不出去。如果你的网口已经配成了noarp模式,例如ppp的配置或者是串口配置,arp可以省略。然后就是udp头ip头及ip分片等的开销,这些动作在核心态操作系统里完成,由于逻辑简单,耗时也可控。总得来说这层耗时也是可控的。
4.如果再上一个台阶用上tcp,复杂度又累加一层。tcp通道首先要协商建立好,tcp的慢启动要考虑,传输中的mtu及间接导致的mss等需要考虑。中间转发设备的丢包策略可能对tcp的平稳性造成的损伤(丢包重传重新协商mss等)需要考虑。
5.操作系统内部进程的cpu占用率对协议栈进程的调度效率的影响。

在 2012年2月8日 下午1:30,WindyWinter <wi...@ream.at>写道:

xchenjun

unread,
Feb 9, 2012, 1:54:21 AM2/9/12
to pon...@googlegroups.com
96折的根据在哪里?是下层协议包头的关系吗?

-----邮件原件-----
发件人: pon...@googlegroups.com [mailto:pon...@googlegroups.com] 代表 Shuo
Chen
发送时间: 2012年2月8日 11:07
收件人: TopLanguage
主题: [TL] Re: 请教网络发包时间计算问题

Shuo Chen

unread,
Feb 10, 2012, 2:19:33 AM2/10/12
to TopLanguage
Reply all
Reply to author
Forward
0 new messages