免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8351 | 回复: 1
打印 上一主题 下一主题

网卡驱动和应用层的socket的之间的关系 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2010-06-15 16:09 |显示全部楼层
应用层调用socket函数与具体的网卡是扯不上关系的,具体与网卡扯上关系是在查找路由表的时候,路由表里面就有指向网卡的net_device指针

查找的路由表项又与你发送数据的source address和destination address有关

论坛徽章:
0
2 [报告]
发表于 2010-06-18 11:54 |显示全部楼层
回复 1# jinxinxin163


首先应用层socket所作的事情非常少(以下紧针对X86体系结构),只是把相应的参数(就是调用socket函数所传递的参数)赋值给一些通用寄存器里面(像EAX、EBAX等),然后就调用INT 0x80,就进入了内核层的socket。内核层socket的代码会根据该套接字的协议类型,调用协议代码,协议代码就会封装他们自己的协议头(当然还有自己那些协议算法,所有TCP、UDP和IP头都是在自己协议代码中封装的,并且都是在内核层里面),然后交给下一层协议处理。

至于你说的用户空间和内核空间通信的问题?看你前面的问题,应该是应用空间怎么进入内核空间的问题。
在X86中是通过陷阱指令实现的。说的这里,你可能还是不太清楚,那么你可以把i386保护模式的体系结构看一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP