zoukankan      html  css  js  c++  java
  • Linux中的lo回环接口详细介绍

    1、linux的网络接口之扫盲

      (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地址.

  • 相关阅读:
    再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法
    Linux安装aria2
    POJ 3335 Rotating Scoreboard 半平面交
    hdu 1540 Tunnel Warfare 线段树 区间合并
    hdu 3397 Sequence operation 线段树 区间更新 区间合并
    hud 3308 LCIS 线段树 区间合并
    POJ 3667 Hotel 线段树 区间合并
    POJ 2528 Mayor's posters 贴海报 线段树 区间更新
    POJ 2299 Ultra-QuickSort 求逆序数 线段树或树状数组 离散化
    POJ 3468 A Simple Problem with Integers 线段树成段更新
  • 原文地址:https://www.cnblogs.com/pricks/p/3822236.html
Copyright © 2011-2022 走看看