Linux协议栈之系统调用

gongxucheng 2010-07-11

Linux TCP/IP协议栈对应于ISO七层参考模型分别为:

应用层-------------应用系统

表示层-------------BSD Socket层  socket.c

会话层-------------INET Socket层 af_inet.c

传输层-------------TCP/UDP  tcp.c/udp.c

网络层-------------IP层   ip.c

链路层-------------设备接口层 dev.c

物理层-------------物理接口层

Linux通过int $0x80it调用进入sys_socketcall(int call,unsigned long *args),函数做为协议栈统一的接口。sys_socketcall()根据参数call跳转到相应不同的入口,完成TCP/IP 相应的功能。

Linux把系统调用号socketcall保存在寄存器eax中,把第一,第二个参数保存到ebx和ecx中。然后call *%eax调用sys_socketcall()。

相关推荐