阅读:1947回复:6
用10M网卡进行数据通信,能否达到实时要求?
两台pc用网卡进行数据交换,在一个采样步长内,client发80字节数据给server,server受到后立即回应40字节数据,client收到回应后,开始下一个步长,请问这样一个收发过程能否在50微秒内实现,如果10M网卡不行,那100M网卡是否能做到?
谢谢! |
|
沙发#
发布于:2001-09-26 09:11
你用什么东西做?
|
|
|
板凳#
发布于:2001-09-26 12:17
winsock是不可能的了,我试过了太慢,我考虑能不能直接在NDIS层上通信,不用上层协议,因为只是两台机器之间通信。
但是NDIS以前没用过,所以不太清楚其性能. |
|
地板#
发布于:2001-09-26 13:10
10M网卡每秒钟最快只能传送10Mb,每微秒只能传送10b,50微秒只能传送500b(62.5字节),所以10M网卡肯定不行,100M网卡能传送5000b,625B,理论上是可以的。
|
|
|
地下室#
发布于:2001-09-26 18:14
想要在eth上实现这种实时,如果是hard-realtime,那几乎
不用想,因为eth本生就不是real-time网络,速度多快都未必 有用。不过G-bit eth我不敢说,我不是很清楚G-bit以太网 的交换原理,在学校的时候听一个做G-bit switcher的师兄 说过几次,现在也忘的差不多了。 如果只是soft-realtime或者firm-realtime,那么我看一方面 是减少os的操作时间,例如直接在tdi或者ndis上收发数据, 另一方面是要控制网络上的机器的发送流量,要是windows 的机器老是在那里广播网络邻居协议的udp包,那么我看 这个实时性就难以保证了。 此外,如果sock太慢,tdi会快得多,用ndis会难以操作。 此外,碎包组包是非常耗费资源的,windows操作系统自己 会发现pmtu,一般来说不会发生这种事情,但是一定要防止 系统中其他的driver造成组包的事情。 |
|
|
5楼#
发布于:2001-09-27 15:36
我只是想在两台机器间用网卡来传数据,连hub都不用.在这种情况下如果用tdi的话,不知能否达到我的要求?
另外,什么是pmtu?不好意思,能否解释一下。 [QUOTE]原本由 Huyg 发表 [B]想要在eth上实现这种实时,如果是hard-realtime,那几乎 不用想,因为eth本生就不是real-time网络,速度多快都未必 有用。不过G-bit eth我不敢说,我不是很清楚G-bit以太网 的交换原理,在学校的时候听一个做G-bit switcher的师兄 说过几次,现在也忘的差不多了。 如果只是soft-realtime或者firm-realtime,那么我看一方面 是减少os的操作时间,例如直接在tdi或者ndis上收发数据, 另一方面是要控制网络上的机器的发送流量,要是windows 的机器老是在那里广播网络邻居协议的udp包,那么我看 这个实时性就难以保证了。 此外,如果sock太慢,tdi会快得多,用ndis会难以操作。 此外,碎包组包是非常耗费资源的,windows操作系统自己 会发现pmtu,一般来说不会发生这种事情,但是一定要防止 系统中其他的driver造成组包的事情。 [/B][/QUOTE] |
|
6楼#
发布于:2001-09-28 11:52
PATH MTU
TDI当然要比SOCK快,至少不需要每次内核和应用层切换。 |
|
|