您现在的位置是: 软件 > 操作系统专区 > Linux园地 > Linux应用 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

Linux最新稳定内核2.4.x的网络接口源码的结构
2002-02-18· ·李元佳··Yesky

上一页  1 2 3 4 5 6 7 8 9  

  所以的映射都已经完成了,用户调用connect()函数,其实就是调用了tcp_v4_connect()函数,按照这幅图,读起源码来就简单了很多了。

  六 Socket层

  上一节把socket层大多数要讨论的东西都谈论了,现在只讲讲socket 层和用户的衔接。

  系统调用socket(),bind(),connect(),accept,send(),release()等是在Linux/net/socket.c里面的实现的,系统调用实现的函数是相应的函数名加上sys_的前缀。

  现在看看当用户调用socket()这个函数,到底下面发生了什么。

  Socket(AF_INET,SOCK_STREAM,0)调用了sys_socket(),sys_socket()接着调用socket_creat(),socket_creat()就要根据用户提供的协议族参数在net_families[]里寻找合适的协议族,如果协议族没有被安装就要请求安装该协议族的模块,然后就调用该协议族的create()函数的处理句柄。根据参数AF_INET,inet_creat()就被调用了,在inet_creat()根据服务类型在inetsw[SOCK_MAX]

  选择合适的协议,并把协议的操作集赋给socket就是了,根据SOCK_STREAM,TCP协议被选中,
  inet_creat(){
  answer=inetsw [用户要求服务服务] ;
  sock->ops = answer->ops;
  sk->prot = answer->prot
  }

  到此为止,上下都打通了,该是大家都源码的时候了。

上一页  1 2 3 4 5 6 7 8 9  

■ 相关内容
 SWsoft公布Virtuozzo2.1测试结果
 Redhat Linux服务器配置实务
 Linux操作系统将大行其道
 Turbo Linux下IP的伪装
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!