什么是接口标识符

2024-05-06

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

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

ex:

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

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

如果有人可以澄清这个问题或用外行的术语向我解释,那将非常有帮助。


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

接下来,你有一个关于接口标识符的错误概念。你所说的(virbro)是接口。在 IPv4 寻址方案中,我们没有接口 ID。我们有 IPv6 地址中的接口 ID。

正如中提到的IPv6 超大地址规模的回报 http://www.tcpipguide.com/free/t_IPv6InterfaceIdentifiersandPhysicalAddressMapping.htm

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

随着 IPv6 中寻址方式的彻底改革,创造了一种更好的方法来映射 IP 单播地址和物理网络地址的机会出现了。实施这种高级映射技术是 IPv6 地址如此之大的原因之一。总共 128 位,即使保留了 48 位用于网络前缀和 16 位用于站点子网,我们仍然剩下 64 位用于接口标识符,这类似于 IPv4 下的主机 ID。

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

Visit 这个链接 http://www.tutorialspoint.com/ipv6/ipv6_address_types.htm为了更清楚地了解接口ID。


现在,回来澄清你的困惑,

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

当您输入时ifconfig在 Linux 中,它显示当前活动接口的状态。

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

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

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

“lo0”、“gif0”、“stf0”、“en0”、“en1”、“en2”、“bridge0”、“p2p0”

  1. lo0---本地网络连接(0表示第一个局域网连接)
  2. en0---以太网连接(0,1,2 表示以太网上的第一个、第二个和第三个连接)
  3. bridge0---到本机的桥接连接
  4. p2p0---点对点连接

不知道gif,stf.请注意,也有逻辑连接/虚拟连接,而不是物理连接(使用网卡)的限制!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是接口标识符 的相关文章

  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • Python speedtest.net,或等效的[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 是否有一个 Python 库可以实现 SpeedTest net 测试或等效的互联网连接速度测试 GitHub上有一个项目叫速度检查 https gi
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4
  • Java“tail -f”包装器

    我需要将 Unix 命令 tail f 包装在 BufferedInputStream 中 我不想模拟或模仿尾巴 如所述这个问题 https stackoverflow com questions 557844 java io implem
  • 具有多处理功能的 Python 代码无法在 Windows 上运行

    以下简单的绝对初学者代码在 Ubuntu 14 04 Python 2 7 6 和 Cygwin Python 2 7 8 上运行 100 但在 Windows 64 位 Python 2 7 8 上挂起 我使用另一个片段观察到了同样的情况
  • WhatsApp 如何实现每台服务器 200 万个连接?

    在 Ubuntu 上 可以打开的最大套接字数似乎受以下控制 cat proc sys net ipv4 tcp max orphans 262144 根据 Rick Reed 来自 WhatsApp 的一次演示 这些人使用 FreeBSD
  • 如何在shell脚本中给出密码?

    在 shell 脚本文件中 我使用一些命令 例如scp and make install要求我输入密码 我运行一个 shell 脚本来编译一个大项目 一段时间后它会要求我输入密码才能使用scp 我需要等待该过程并在此之后提供密码 我只想通过
  • 如何找到进程启动时使用的原始用户名?

    有一个 perl 脚本需要以 root 身份运行 但我们必须确保运行该脚本的用户最初没有以用户 foo 身份登录 因为它将在脚本运行期间被删除 那么 我如何查明自登录以来可能已多次起诉的用户是否在该链中的任何时间都没有模拟过 foo 我发现
  • 在 C 中运行 setuid 程序的正确方法

    我有一个权限为4750的进程 我的Linux系统中存在两个用户 root 用户和 appz 用户 该进程继承以 appz 用户身份运行的进程管理器的权限 我有两个基本惯例 void do root void int status statu

随机推荐