linux系统中,有关网络服务接口,是什么定义的

linux系统中,有关网络服务接口,是什么定义的,第1张

(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(…)实现的。

2、LINUX中的lo(回环接口)

1)

什么是LO接口?

在LINUX系统中,除了网络接口eth0,还可以有别的接口,比如lo(本地环路接口)。

2)

LO接口的作用是什么?

假如包是由一个本地进程为另一个本地进程产生的,

它们将通过外出链的’lo’接口,然后返回进入链的’lo’接口.具体参考包过滤器的相关内容。

PART2

实验:

本地一个进程发起连接,到一个本地的daemon监听的内网IP地址(eth1:

10.1.1.1)的端口(8085),此时在eth1上是抓不到包的,在

lo

上抓到,说明使用的是本地回环接口lo,而网络层的IP地址则是内网IP地址.

方法/步骤

1、进入linux,使用“ cat /etc/services ”命令,可以查看所有服务默认的端口列表信息。

2、使用“netstat”命令,查看正在连接的端口【连接】列表信息。

3、使用“nestat -a”命令,查看所有服务端口【监听、连接】列表信息。

4、套接字的种类除了t(TCP)、u(UDP)之外,还有w(RAW)、x(UNIX)套接字。

5、使用" netstat -ap"查看所有服务端口和对应的程序名称。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7564090.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存