TCP协议是用单线程还是多线程实现的? 看了《TCP/IP详解》一书,对几个问题不太明了,其中之一就是TCP协议是单线程还是多线程实现的?我看书里写的好像是单线程实现的,那如果这样的话多CPU电脑在TCP协议上不就体现不出来优势了吗?因为我要实现一个UDP为基础的可靠传输协议,所以有此一问,因为我不知道我的协议应该是单线程还是多线程,请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PC可以同时处理多个TCP的,只不过端口不一样吧了. To 1楼: 我知道可以同时处理多个连接,我的问题是这么多个连接是并行处理还是串行处理,如果CPU个数多的话速度会不会增快,是不是类似与应用层的多线程呢?感谢回答 宏观上是并行的,微观上是串行的,与多线程确实有些类似。网络速度和连接数之间没有必然的联系,唯一对速度起决定性作用的是你的网络出口带宽,就如决定程序速度最主要的因素是CPU的速度而不是程序的线程数量。 基于TCP创建服务器时,如果是同步的话,那每个客户连接对应一个线程,但是如果采用异步方式,服务端就可以实现单线程通讯,但有个问题,如果只用一个线程,客户连接数会有限制,对于select和WSAEventSelect默认只有64个,而且在单线程的情况,系统吞吐量不高,建议使用线程池来创建服务端,每个线程对应几十个客户连接。 不知道你要实现哪一层的协议,目前的 TCP UDP 实现库一般都是可以在多线程环境下运行的,毎一层基本上都有buffer,所以是并行还是串行影响不大,基本上程序的瓶颈都不会出现在协议层上,还是应该好好设计程序的架构;多CPU或者多核肯定提高系统的处理能力,我觉得你现在不用考虑这方面的问题; TO 5楼: 我要实现的是应用层的可靠协议,用UDP模拟TCP的,我想用多线程来设计,但是多线程之间的同步问题搞的我头都大了,所以我想改用单线程来设计,但是我怕单线程会影响性能(现在电脑一般都是双核CPU的多,如果是多线程可以大大提高性能),我看TCP的源代码好像是单线程模型,不太确定,看的不大懂,请达人指教 简单的说就是用不可靠的udp协议实现可靠的udp文件传输协议,带有差错重传,校验等功能 我的目标是在应用层上实现,我问的是驱动层上的TCP是用单线程还是多线程 界面开发框架更新 winnet获取web数据的错误。 关于在客户区拖动有背景的对话框怎么实现?以及其他界面美化处理 救命!!!狂散分!!!!!!救命!!!!!! 创建二个工作线程,使用的是临界区对像.但是发现每个线程只运行了一次,我要它不断的运行,或者判断一下,如果条件成立的话就运行. 求一个使用蓝牙API的示例!!! CHM 有些基类没法加载! 请教wm_command和wm_notify的区别 字符操作的问题 如何改变非客户区鼠标指针? 子窗口的CDialog::OnOK()在什么情况下会关闭整个应用程序
感谢回答
宏观上是并行的,微观上是串行的,与多线程确实有些类似。网络速度和连接数之间没有必然的联系,唯一对速度起决定性作用的是你的网络出口带宽,就如决定程序速度最主要的因素是CPU的速度而不是程序的线程数量。
所以是并行还是串行影响不大,基本上程序的瓶颈都不会出现在协议层上,还是应该好好设计程序的架构;多CPU或者多核肯定
提高系统的处理能力,我觉得你现在不用考虑这方面的问题;