openssl的ssl_accept丢包问题

eddiegin2 2009-08-10 09:22:31
[环境]:PC1是一个CS的server端,PC2是client端,PC2是一个模拟器,模拟出1000个client(其实就是起1000个同样的进程)。
PC1与PC2之间通讯先通过openssl建立连接,然后从ssl的链路进行数据交互。


[问题]:PC2模拟的client端程序,每隔1秒启动一个,PC1与其之间都能建立连接,
PC2同时开1000个同样的进程,发现问题:PC1的ssl_accept经常收不到client发过来的connet包。
我抓包看了,PC2已经将包发了出去,但是PC1有时候应用层收不到,并且只有ssl_accept的时候会丢包。

请问这是什么原因,并且如何解决
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是PC1(server)的协议栈根本就没有将部分包送到应用层,在下面就丢了,协议栈不会去丢这个包吧,我的server程序肯定能来得及处理的

就是连接建立不起来啊,难道建立起来了,底层还把包丢了不成。
eddiegin2 2009-08-10
  • 打赏
  • 举报
回复
你的意识是瓶颈在server端了?
>> 但是很奇怪的是,我调试发现,只模拟16个client,还是会丢包,
>> 是PC1(server)的协议栈根本就没有将部分包送到应用层,在下面就丢了,协议栈不会去丢这个包吧,我的server程序肯定能来得及处理的
  • 打赏
  • 举报
回复
http://hi.baidu.com/jiawen/blog/item/a767d5583db6ef84800a1890.html

你可以理解一下并发连接数的意思。

我觉得每秒能响应的连接数肯定是有限制的。

那如果PC1的1000个进程在1000个设备上跑,同时开机运行程序,也会有这样的现象吗???


一般是一样的,你多个进程模拟,跟多台机器是一样的,只不过是在1000台不同机器上的1000个进程而已。
eddiegin2 2009-08-10
  • 打赏
  • 举报
回复
那如果PC1的1000个进程在1000个设备上跑,同时开机运行程序,也会有这样的现象吗???
eddiegin2 2009-08-10
  • 打赏
  • 举报
回复
很奇怪的是,PC1与PC2一直有数据通讯,其他的包都收到,就是openssl的accpet接收会丢包,connet和accpet会分包发送的。
  • 打赏
  • 举报
回复
PC2同时开1000个同样的进程,发现问题:PC1的ssl_accept经常收不到client发过来的connet包。
这个应该是正常吧,一般的并发连接,貌似也不能够满足同时建立大量的新链接吧,它的并发之是满足,一个server一共可以满足很多连接吧。

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧