Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 什么是接口标识符_Linux_Unix_Networking_Network Programming - Fatal编程技术网

Linux 什么是接口标识符

Linux 什么是接口标识符,linux,unix,networking,network-programming,Linux,Unix,Networking,Network Programming,我有一台使用一个或多个网络适配器连接到公司网络的笔记本电脑。我正在尝试编写一个工具,它将持续监视每个网络的连接状态和连接质量。然而,我的网络知识有限,术语让我感到困惑 专门查找所有网络适配器。有人建议我使用命令ifconfig,它给了我所谓的“接口标识符” 例: ['lo0','gif0','stf0','en0','en1','en2','bridge0','p2p0'] 我不太确定这如何帮助我解决问题,因为我不知道接口标识符是什么,也不确定如何利用这些信息。我的假设是,它们代表网络中的计算机

我有一台使用一个或多个网络适配器连接到公司网络的笔记本电脑。我正在尝试编写一个工具,它将持续监视每个网络的连接状态和连接质量。然而,我的网络知识有限,术语让我感到困惑

专门查找所有网络适配器。有人建议我使用命令
ifconfig
,它给了我所谓的“接口标识符”

例:

['lo0','gif0','stf0','en0','en1','en2','bridge0','p2p0']

我不太确定这如何帮助我解决问题,因为我不知道接口标识符是什么,也不确定如何利用这些信息。我的假设是,它们代表网络中的计算机或路由器


如果有人能澄清这一点,或者用外行的语言向我解释,那将非常有帮助

首先,您需要了解计算机中可能存在物理网卡(或/和逻辑网络适配器),以识别连接/管理连接

接下来,您对接口标识符有一个不正确的概念。 您所谈论的(eth、virbr、lo)是接口。在IPv4寻址方案中,我们没有接口ID。我们在IPv6地址中有接口ID

如中所述

在IPv4中,IP地址与用于底层数据链路层网络技术的地址没有关系。使用以太网网络接口卡(NIC)连接到TCP/IP网络的主机具有以太网MAC地址和IP地址,但这两个数字在任何方面都是不同和不相关的

随着IPv6寻址技术的全面革新,出现了一个创建更好的映射IP单播地址和物理网络地址的方法的机会。实现这种优越的映射技术是IPv6地址变得如此庞大的原因之一。总比特数为128位,即使网络前缀保留了完整的48位,站点子网保留了16位,我们仍然剩下64位用于接口标识符,这类似于IPv4下的主机ID

有这么多的东西可供我们使用,这给了我们很大的灵活性。我们可以将接口ID基于底层数据链路层硬件地址,只要该地址的长度不超过64位,而不是为主机使用任意“组合”标识符。由于几乎所有设备都使用64位或更少的第二层地址,因此在IP地址中使用这些地址作为接口标识符是没有问题的。这提供了一个直接的好处:它使网络更易于管理,因为我们不必为每个主机记录两个任意数字。IP地址可以从MAC地址和网络标识符派生。这也意味着我们将来可以区分IP地址和MAC地址,反之亦然

访问以更清楚地了解接口ID


现在,回到这里来澄清你的困惑

所有连接(接口),如Ethernet-0、Ethernet-1、WiFi-1等,都有自己的
接口标识符
。您可以将其视为一种特殊的标识号,用于标识当时可用的接口类型

在Linux中键入
ifconfig
时,它会显示当前活动接口的状态

现在,在示例部分,假设您的系统上有两个以太网连接,例如,
eth0
eth1
(这些是接口名称)——因此ifconfig将打印这两个作为其输出的结果

因此,要识别这两个独立的接口,必须有一个
接口标识符
。接口标识符(通常为64位)为 使用从接口的MAC地址自动生成 修改后的EUI-64格式,从DHCPv6服务器获取, 自动随机建立,或手动分配

此外,您提到的接口是一些最常用的接口:-

‘lo0’、‘gif0’、‘stf0’、‘en0’、‘en1’、‘en2’、‘bridge0’、‘p2p0’

  • lo0
    ——本地网络连接(0表示lan的第一次连接)
  • en0
    ——以太网连接(以太网上的第一、第二和第三个连接为0,1,2)
  • bridge0
    ——与此计算机的桥接连接
  • p2p0
    ——对等连接

  • 不了解
    gif
    stf
    。请注意,存在逻辑连接/虚拟连接,而不是物理连接(使用网卡)的限制

    我发现至少在OSX上有
    man
    gif
    stf
    条目。它们分别是通用隧道接口和IPv6到IPv4隧道接口(“六到四”)。

    它们表示计算机中的逻辑或物理网络接口卡(NIC)。@EJP-接口ID与接口不同,因此它与您认为的不同。请访问已接受的答案以了解更多信息。我这么晚才注意到你的评论!