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


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

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

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

  一.前言

  Linux的源码里,网络接口的实现部份是非常值得一读的,通过读源码,不仅对网络协议会有更深的了解,也有助于在网络编程的时候,对应用函数有更精确的了解和把握。

  本文把重点放在网络接口程序的总体结构上,希望能作为读源码时一些指导性的文字。

  本文以Linux2.4.16内核作为讲解的对象,内核源码可以在http://www.kernel.org上下载。我读源码时参考的是http://lxr.linux.no/这个交差参考的网站,我个人认为是一个很好的工具,如果有条件最好上这个网站。

  二.网络接口程序的结构

  Linux的网络接口分为四部份:网络设备接口部份,网络接口核心部份,网络协议族部份,以及网络接口socket层。
  网络设备接口部份主要负责从物理介质接收和发送数据。实现的文件在linu/driver/net目录下面。

  网络接口核心部份是整个网络接口的关键部位,它为网络协议提供统一的发送接口,屏蔽各种各样的物理介质,同时有负责把来自下层的包向合适的协议配送。它是网络接口的中枢部份。它的主要实现文件在linux/net/core目录下,其中linux/net/core/dev.c为主要管理文件。

  网络协议族部份是各种具体协议实现的部份。Linux支持TCP/IP,IPX,X.25,AppleTalk等的协议,各种具体协议实现的源码在linux/net/目录下相应的名称。在这里主要讨论TCP/IP(IPv4)协议,实现的源码在linux/net/ipv4,其中linux/net/ipv4/af_inet.c是主要的管理文件。

  网络接口Socket层为用户提供的网络服务的编程接口。主要的源码在linux/net/socket.c

  三.网络设备接口部份

  物理层上有许多不同类型的网络接口设备, 在文件include/linux/if_arp.h的28行里定义了ARP能处理的各种的物理设备的标志符。网络设备接口要负责具体物理介质的控制,从物理介质接收以及发送数据,并对物理介质进行诸如最大数据包之类的各种设置。这里我们以比较简单的3Com3c501 太网卡的驱动程序为例,大概讲一下这层的工作原理。源码在Linux/drivers/net/3c501.c。

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

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