Chinaunix首页 | 论坛 | 博客
  • 博客访问: 402459
  • 博文数量: 65
  • 博客积分: 1491
  • 博客等级: 上尉
  • 技术积分: 702
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-30 15:57
文章分类
文章存档

2011年(6)

2010年(12)

2009年(47)

我的朋友

分类: LINUX

2009-12-29 16:19:14

(1)网络接口的命名
  这里并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。例如:
    eth0: ethernet的简写,一般用于以太网接口。
    wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。
    ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。
    lo:   local的简写,一般指本地环回接口。
(2)网络接口如何工作
  网络接口是用来发送和接受数据包的基本设备。
  系统中的所有网络接口组成一个链状结构,应用层程序使用时按名称调用。
  每个网络接口在linux系统中对应于一个struct net_device结构体,包含name,mac,mask,mtu...信息。
  每个硬件网卡(一个MAC)对应一个网络接口,其工作完全由相应的驱动程序控制。
(3)虚拟网络接口
  虚拟网络接口的应用范围非常广泛。最著名的当属“lo”了,基本上每个linux系统都有这个接口。
  虚拟网络接口并不真实地从外界接收和发送数据包,而是在系统内部接收和发送数据包,因此虚拟网络接口不需要驱动程序。
  虚拟网络接口和真实存在的网络接口在使用上是一致的。
(4)网络接口的创建
  硬件网卡的网络接口由驱动程序创建。而虚拟的网络接口由系统创建或通过应用层程序创建。
  驱动中创建网络接口的函数是:register_netdev(struct net_device *)或者register_netdevice(struct net_device *)。
  这两个函数的区别是:register_netdev(...)会自动生成以"eth"作为打头名称的接口,而register_netdevice(...)需要提前指定接口名称.事实上,register_netdev(...)也是通过调用register_netdevice(...)实现的。

<--文章完-->
阅读(2001) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~