• [转载]Linux中的网络接口及LO回环接口


    转自:https://blog.csdn.net/weixin_39863747/article/details/80564358

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

        3)lo接口定义:本地回环地址指的是以127开头的地址(127.0.0.1 – 127.255.255.254),通常用127.0.0.1来表示。

    127.0.0.1,通常被称为本地回环地址(Loop back address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在windows操作系统中也有相似的定义,所以通常在不安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。

    其主要作用有两个:

    • 一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题;
    • 另一个作用是某些SERVER/CLIENT的应用程序在运行时需调用服务器上的资源
  • 相关阅读:
    大地坐标
    坐标转换
    哈希&查找树@堆
    设计模式--工厂模式(c++)
    STL容器的删除操作
    istringstream & ostringstream & stringstream
    第九次集体开发
    第八次开发
    我组举行第十四次立会暨第七次集体项目开发
    第十三次立会暨第六次集体开发
  • 原文地址:https://www.cnblogs.com/workingdiary/p/10396171.html
Copyright © 2020-2023  润新知