怎样量化和评估一个典型的socket消耗了哪些硬件资源

什么一个硬件中断啊,如果你写过网卡的驱动就知道,那要成千上万个硬件中断……
■网友
一个硬件中断?这应该不消耗。socket怎么会需要硬件中断了…………从tcp和udp上看,socket的实质是对报文的封装和分发管理。所以一个socket应该消耗一个端口资源,以及一部分内存资源。你所看到的中断应该是listen和accept在有数据时的解除阻塞吧,那不是消耗硬件中断,而是系统接收到报文之后,发现报文需要转发到此用户进程,于是解除该进程的阻塞并且把报文上到用户空间,于是你read的时候就有数据了。从表面上看,listen和accept的行为的确挺像单片机串口收发时的接收中断。但是不是,用户空间软件永远无法直接调用或与硬件中断关联,用户空间与硬件资源(内存除外)的一切操作都需要通过设备文件,这应该是原则吧…………反正我是没有想出有啥与硬件交互的方法是可以绕过设备文件的…………
■网友
socket和硬件中断压根就没直接关系好嘛……为了省资源我们是不是把键盘什么的也禁用掉好了,因为敲一下就是一个硬件中断。CPU也休眠算了,因为每秒起码成百上千个时钟中断了……socket本来就只是上层的概念,说白了大部分系统里面就是一个指向控制块的指针值罢了。socket折腾完了扔进协议栈然后可能还有操作系统的调度再扔到驱动,驱动捯饬完了甩给硬件硬件里面说不定还得把FPGA什么的参合进来。现在你问socket和硬件之间有什么联系,你让别人怎么回答你?!
■网友
不就内存了?硬件中断?我高中的时候还以为TCP端口是一个真实存在的物理端口呢。。中断仅仅是设备通知CPU有事件的一个机制而已,那么一个网卡只需要一个中断信号告诉CPU即可。哪怕你在一个网卡绑定几百个IP,开了几十万几百万的socket。


    推荐阅读