LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1500|回复: 18

怎么实现这个程序

[复制链接]
发表于 2003-7-3 12:47:02 | 显示全部楼层 |阅读模式
题目是:测试网络延迟与传输字节数的关系。1.tcp阻塞式 ;2.udp阻塞式

怎么实现呢?
发表于 2003-7-3 13:07:00 | 显示全部楼层
能不能把问题说清楚一些。你是指传输的数据包大小与延迟的关系?还是指在带宽一定的前提下,传输的数据量与延迟时间的关系?
前者是超时重传的算法实现问题,后者是一个带宽分配的问题。
 楼主| 发表于 2003-7-4 23:12:35 | 显示全部楼层
若是udp的话应该是数据包的大小吧;若是tcp的话应该是从缓冲区发送到socket里的数据量吧。
数据大小从4,16,64,256,。。。,4K字节大小。
 楼主| 发表于 2003-7-4 23:16:08 | 显示全部楼层
这个问题是我们老师给我的的作业,相应的还有缓冲区大小对传输延迟的延迟影响,缓冲区大小从1K到9k,数据包的大小固定为10k大小
发表于 2003-7-4 23:24:41 | 显示全部楼层
不知道你的网络环境是什么样的。一个包在互联网上传输时,要受到物理网络的限制,如果包比物理网络的MTU大,那就要被路由器分片,分片后的fragment可能会以不同的路径传输,只要其中一个fragment丢失或者延迟时间太长,都会造成整个包重传。所以这些条件不确定,不好具体分析延迟时间与数据包大小的关系。
 楼主| 发表于 2003-7-4 23:26:55 | 显示全部楼层
当时老师就这么说的。这个问题的I/O方式是阻塞式,那么这个延迟是传输延迟,而不是带宽分配的问题吧?我是这么想的,不知对不对呀。
发表于 2003-7-4 23:43:49 | 显示全部楼层
如果什么都不管,那就写一个socket程序,TCP用send()发送,read()接收。UDP用sendmsg()发送,recvmsg()接收就完了。
 楼主| 发表于 2003-7-5 11:42:29 | 显示全部楼层
我们的这个实验是在本机的两个终端上通讯的,那这个网络延迟能体现出来吗?
发表于 2003-7-5 12:17:48 | 显示全部楼层
如果是这样,恐怕体现不了什么。唯一能影响的,就是缓冲区的大小了。但在本机的两个终端上通讯,发出的分组实际上直接从发出包的缓冲区转移到接收包的缓冲区。这个速度应该没有什么多余的延迟。除非人为地制造延迟。
这个讨论你看看吧:
http://www.linuxsir.net/bbs/showthread.php?s=&threadid=31476
 楼主| 发表于 2003-7-5 21:47:49 | 显示全部楼层
谢谢你,非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表