为何IOCP能够同时处理成千上万个连接???(20分)

王府井

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]做内核,做内核,楼上的无忌,肝火太盛了吧,不知道有没有自己设计TCP协议栈的经历,或者从第一行汇编写起,做一个支持HTML的小系统呢?
 

张无忌

Unregistered / Unconfirmed
GUEST, unregistred user!
如果别人有稳定的模块,我就去使用,除非是不能满足我的需要。这种情况我才考虑自己写或者换其他模块。自己去写协议栈通常情况下我不考虑,如果真有需求,我会建议公司去买一个专业公司的协议栈,因为一般来说协议栈开发周期太长。自己做完了早过了项目开发周期。
 

张无忌

Unregistered / Unconfirmed
GUEST, unregistred user!
现在早过了什么模块都自己开发的时代,就是微软的软件, 比如IE在他的关于里也有别人公司的申明,说明在什么基础上开发的。什么都要自己做,只能是小孩子过家家,永远也做不大。
 

王府井

Unregistered / Unconfirmed
GUEST, unregistred user!
是的哦,跟你一样的程序员太多太多了哦,95%的win32程序员每天都在做你同样的事情,如果你喜欢这种别人送猪,你杀猪,老板数票子的日子,也无可厚非,人各有志。不知道你有没有想过你在每天杀猪这个过程中是不是可替代的呢?呵呵,中国的民工程序员年年都在赶工期,天天都赶项目,忙啊忙啊,其实老板在打高尔夫球呢,

呵呵。如果你没有远大的志向,我也不好意思再说你什么,知其然,不敢知其所以然,这点勇气和时间都没有,我不知道你都在忙什么?留给自己思考和探究的时间都没有了吗?

工欲善其事,必先利其器,我知道很多国内的游戏买引擎,买代码,甚至买一个开发团队,遇到这种老板你要小心了,你要掂量一下自己的可利用价值,呵呵,马克思对于资本家追逐利润的描述从来没有过时。
 

张无忌

Unregistered / Unconfirmed
GUEST, unregistred user!
王府井真是小白[:D][:D][:D]
一会劝我去做驱动核心开发一会又说BOSS如何如何,真是昏倒啊,搞不懂你要说什么。
 
H

happycyp

Unregistered / Unconfirmed
GUEST, unregistred user!
呵呵。讨论技术过火了。
大家不要大动肝火,有技术无关的,当然都有自己的意见。不可能统一的,不能因这个,在这里无休止的吵架。
和为贵!
 

王府井

Unregistered / Unconfirmed
GUEST, unregistred user!
核心开发我指的linux or freebsd内核,win内核的驱动开发跟制作win 32 dll没有什么本质区别,所以不必描述这个驱动开发为洪水猛兽。内核危险吗?引用老美的话:能力越大,责任也越大,除非你根本不自信,或者根本没有能力,这个世界上不缺顶级人才的。

小学有篇文章《小马过河》,到底河水有多深,鸭子说的,跟骆驼说的,你都不要信,自己趟一次,你就明白了。年轻人,怕什么呢?
 

张无忌

Unregistered / Unconfirmed
GUEST, unregistred user!
核心开发我指的数字电路设计开发,数字电路设计开发跟制作软件没有什么本质区别,所以不比描述这个数字电路设计开发为洪水猛兽。数字电路设计吗?引用老美的话:能力越大,责任也越大,除非你根本不自信,或者根本没有能力,这个世界上不缺顶级人才的。
 

王府井

Unregistered / Unconfirmed
GUEST, unregistred user!
看来我高看你了,呵呵,也是耍嘴皮子的绣花枕头,完成端口你能说出个八八九九,让我信服的东西吗?[:D],大家鼓个掌吧,欢迎张同学给大家扯一句跟完成端口有关的独特见解吧,要不就改名——铁掌水上漂。
 

张无忌

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]要学IOCP,你不会去看你的驱动啊?[:D]
 

张无忌

Unregistered / Unconfirmed
GUEST, unregistred user!
你压根不讲道理,我把你的话稍微引申一下就漏洞百出,这样逻辑昏烂的人怎么可能听的懂IOCP,写的了驱动了?笑话!!!
 

王府井

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]我可能是听不懂,这么多人都听不懂您老的高见吗?肚子里面到底有没有货啊,呵呵,说几句吧,让我们听听高人的见解,你写了这么多字,一句完成端口都没有哦,总要扯两句吧!
 
T

tseug

Unregistered / Unconfirmed
GUEST, unregistred user!
1 空谈误国,实干兴邦。这个社会是需要互相协作的,少了谁都不行,同时又少了谁都行
2 技术只是手段,不是目的,再高深的技术也只是为了实现某个目的的手段。
3 没有人把核心开发、驱动开发视为洪水猛兽,都是软件开发的一个方面,术业有专攻。
4 某些时候核心开发、驱动开发必不可少,但他不是作包治百病的良药。
5 软件开发本身就是一个折衷的过程,要跟据需求、工期、成本等综合考虑,具体问题
具体分析才行。
 

王府井

Unregistered / Unconfirmed
GUEST, unregistred user!
还是tseug让人佩服,大家可以看看jingtao和张无忌的发言,不懂的东西装懂,微软提供的内核socket的头文件大家都可以看,驱动内核的socket支撑上层socket,用这个socket写项目已经走出实验室成为新的潮流,效率高低也有国外专家的数据证明,这些数据大家可以在网上查到。

我替内核开发正名,也想摘那些所谓高手的帽子,让大家看到,秃了就秃了,不用甩那几缕遮着。人家宋晓波听力障碍,也能说话,但是人家知道自己的优势在跳舞,所以能succeed.而我们的所谓高手,说那些不着边际的话,还极力维护之,丑态毕现,何必呢?
 

天真

Unregistered / Unconfirmed
GUEST, unregistred user!
王府井是泼妇!
签定完毕!
 
S

sevencat

Unregistered / Unconfirmed
GUEST, unregistred user!
Linux内核提供的Http服务器TUX,完全工作在Kernel mode,也就是工作在驱动层的Http服务器,工作效率高的惊人,这是学习linux网络内核很棒的案例。
//========================================
你知道很多人强烈要求取消吗?LINUX现在已经不稳定了,他们认为这会更加增加不稳定性,而且HTTP服务器(静态文本)的瓶颈在于带宽。

比如:3721为什么总是杀不掉,就是使用了文件过滤引擎在自我保护。
//========================================
能讲讲3721和cnnic在文件保护方面的各自的实现吗?

除了那些硬件开发的,很少人在写实现型的驱动,大部分人都采用和微软提供的标准接口,在微软的Windows内核上加上一个Filter,这样就诞生了目前这么多的应用,虚拟盘,杀毒软件,透明加密解密,系统还原,防火墙,入侵检测,ISCSI,还原精灵等等。
//========================================
我们一同事就是原还原精灵的开发者,我以前的同事就做过虚拟盘、杀毒软件、透明加密、防火墙...,不过似乎还原精灵和防火墙大都不是用什么标准接口。

防火墙驱动,并不是要代替ISO7层中的某一层,而是按照微软提供的标准方法,为某一层做过滤性挂接,从而实现包过滤的效果
//=======================================
一般的防火墙驱动都不是用微软提供的标准方法。

事实上,所谓完成端口效率高,说得就是内核网络实现比应用层实现效率高,仅此而已,大不必为那些概念所迷惑。
//=======================================
NO完全是这样子的,完成端口主要是导出了一个工作队列的概念(LINUX下内核有类似的实现),说白了,就是IO操作中最后的DeviceIoControl的最后是用一个EVENT等待内核操作的完成(因为NT内核是异步的),这时候线程就要挂起。

win32开发用的都是底层接口,真正的实现是在kernel mode完成的,完成端口把windows内核的dpc发挥到了最好,文件系统也有完成端口,readfile和wrietfile就有完成端口,而且如果你理解windows内核的话,可以直接用readfile and writefile来对一个socket来进行读写
//=============================================
readfile会被映射到send,writefile会被映到recv,没啥子差别。你其实还可以直接发消息给afd.sys这个驱动。完成端口跟DPC没啥差别,并不是文件系统有完成端口,而是deviceiocontrol支持完成端口。

例如:NC,3G,IPV6,Home media center,wireless network,巨头们超前多少年就已经提出了这样战略制高点,并成立战略联盟。同时多少二流的公司在努力争夺概念之后的标准?多少三流的公司在努力实现标准之后的具体设计?中国人目前在3G上的TD-WCDMA,在wireless network上的WAPI,已经是创纪录的进步了,因为在这方面终于步入二流了。CNNIC提交的中文上网的RFC标准刚刚被批准,大家数数看,除此之外成千上万的指导技术实现的RFC标准,有哪些跟我们中国所谓的高手有半点的关系?[:D]
//====================
说这些狗屁楰有个鸟用啊。


ancillary function driver for winsock(afd.sys)
|
transport for windows tcp/ip (tcpip.sys)
|
ndis library(ndis.lib)

ndis.lib是个啥东东啊?这个图是误导其他人的。
其实是tcpip.sys通过ndis框架(具体结构你肯定没仔细看过)传给miniport驱动的,你看ddk中有例子。


竟然有人说做驱动不稳定,比不过微软稳定云云,估计连微软都要苦笑了,它努力简化驱动框架,培养内核开发这么大的产业群,被几个做Delphi的讲的跟研究炸药一样,全世界俺们这么多人在吃内核这碗饭,准备吃这碗饭,不让你做Delphi的婆婆妈妈奉劝。
//==========================================
一个驱动没一两年功夫稳定,是不可能的,我前同事的透明加密解密做了四五年了,还没有完全稳定下来,你他妈的懂个屁啊。

google据说用了45万台服务器,每月的流量是7500万次访问,张先生去google能省下多少钱啊,节约型社会年内就有希望了啊?盛大还用买什么韩国人代码啊?直接发大财了啊,股价估计从16美金直飞500美金啊。
//=================================================
你知道什么是io瓶颈和网络瓶颈?

我给那个先生介绍一个生意哦,flashget卖给zcom是几千万现金加上zcom的几百万股票,无忌兄做的服务器支撑几百万人的长期链接,这要卖了可是做Delphi的又一大骄傲啊,几亿现金加几亿的股票,200一平方的房子都买得呀,即使不卖自己创业也能拿红杉的1亿美金的风投啊。
//==================================================
你去找找老蔡,看他要不要你。

libnet在国外举足轻重开源项目,CSICO的著名专家的项目哦,国内的安全小组也介绍过,中科院的学生在上面实现一个简单的TCP/IP栈的文章google里面全部都能搜到。snort是全球最著名的入侵检测项目,开源的,免费的,代码都可以看到,用的就是wincap来通讯的,
国内的网络执法官,国外的很多联动防火墙,网络克隆项目都用wincap来通讯。wincap可以发送链路层包,所以如果通讯的另一方是用网卡包驱动通讯的,用wincap是最好的选择。
//==================================================
在像网络游戏的应用中,根本没必要到这种地步来做。以前我们公司在裁剪过的LINUX用pcap做过网络防火墙,所有的包处理都自己处理。全部内存处理。在网络游戏里面这个地方根本不是瓶颈。


一次次的展示无知,是无畏吗?完成端口是为了减少线程?大家理解完成端口的能坐得住吗?对完成端口理解到这个份上,也是中国人的壮举啊。socket也可以用bind message来实现收发,只用一个线程就够了哦,咋就没有效率呢?
//====================================================
无知者无畏,你找完成端口的原代码自己去体会体会。


因为如果内核变了,它所承载的金字塔是什么呢?上千万的程序都要改写。因此内核开发非常重视这种修正,XP已经5年了,linux从2.4跳到2.6也5,6年了,WDM驱动框架13年了。熟悉了内核,你写一个win的驱动,很容易移植到liu上,真的不难啊,谁用谁知道!
//=====================================================
你试试把ntfs移植到LINUX下面看看。ntfs的nt4的原代码想必你有的。



我替内核开发正名,也想摘那些所谓高手的帽子,让大家看到,秃了就秃了,不用甩那几缕遮着。人家宋晓波听力障碍,也能说话,但是人家知道自己的优势在跳舞,所以能succeed.而我们的所谓高手,说那些不着边际的话,还极力维护之,丑态毕现,何必呢?
//===================================================
怀疑你有没有完整的开发和调试过一个内核驱动。
 

人贱贱人爱爱

Unregistered / Unconfirmed
GUEST, unregistred user!
严重同意以上鉴定!
 
L

liyong0775

Unregistered / Unconfirmed
GUEST, unregistred user!
这些号都是才注册的[:D]
天气热,少动肝火。。。
 
S

sevencat

Unregistered / Unconfirmed
GUEST, unregistred user!
有的人就是看到其他人写的代码觉得简单,有本事你自己做个出来啊。
没本事做就不要瞎吹,没有用过就不要硬充内行。
你丫的知道一点点内核开发皮毛就到处吹嘘,有本事到驱动开发网上去跳啊。

不知道网址:
http://bbs.zndev.com
少在这里眼高手低了。
 
B

byc6352

Unregistered / Unconfirmed
GUEST, unregistred user!
同意张无忌的观点。王府井失去理智,胡说八道!
鉴定完毕!
 
顶部