- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一台笔记本电脑,它使用一个或多个网络适配器连接到我所在组织的网络。我正在尝试编写一个工具来持续监控每个网络的连接状态和连接质量。然而,我的网络知识有限,术语让我感到困惑。
专门查找所有网络适配器。有人建议我使用命令 ifconfig
,它给了我所谓的“接口(interface)标识符”。
例如:
['lo0', 'gif0', 'stf0', 'en0', 'en1', 'en2', 'bridge0', 'p2p0']
我不太确定这如何帮助我解决我的问题,因为我不知道什么是接口(interface)标识符,也不确定如何利用这些信息。我的假设是它们代表网络中的计算机或路由器。
如果有人可以解决这个问题或用通俗易懂的方式向我解释,那将非常有帮助。
最佳答案
首先,您需要了解计算机中可能存在物理网卡(OR/AND 逻辑网络适配器)来识别连接/管理连接。
Next, you have an incorrect notion about interface identifier. What you talked about(eth,virbr,lo) are interfaces. In IPv4 addressing scheme, we don't have interface ID. We have interface ID's in IPv6 addresses.
如 The Payoff of IPv6’s Very Large Address Size 中所述
在 IPv4 中,IP 地址与用于基础数据链路层网络技术的地址没有关系。使用以太网网络接口(interface)卡 (NIC) 连接到 TCP/IP 网络的主机具有以太网 MAC 地址和 IP 地址,但这两个数字完全不同且毫无关联。
随着 IPv6 中寻址的彻底改革,创造更好的映射 IP 单播地址和物理网络地址的方法的机会出现了。实现这种卓越的映射技术是 IPv6 地址变得如此之大的原因之一。总共 128 位,即使为网络前缀保留了完整的 48 位,为站点子网保留了 16 位,我们仍然有 64 位用于接口(interface)标识符,这类似于 IPv4 下的主机 ID。
拥有如此多的数据位给了我们极大的灵 active 。我们可以将接口(interface) ID 基于底层数据链路层硬件地址,而不是使用任意“虚构”的主机标识符,只要该地址的长度不超过 64 位即可。由于几乎所有设备都使用 64 位或更少的第二层地址,因此使用这些地址作为 IP 地址中的接口(interface)标识符没有问题。这提供了直接的好处:它使网络更易于管理,因为我们不必为每个主机记录两个任意数字。 IP 地址可以从 MAC 地址和网络标识符中导出。这也意味着我们将来可以根据 MAC 地址区分 IP 地址,反之亦然。
访问this link以便更清楚地了解接口(interface) ID。
现在,回来澄清你的困惑,
所有连接(接口(interface)),例如 Ethernet-0、Ethernet-1、WiFi-1 等。有自己的接口(interface)标识符
。您可以将它们视为一种特殊的标识号,用于标识当时可用的接口(interface)类型!
当您在 Linux 中键入 ifconfig
时,它会显示当前事件接口(interface)的状态。
现在,进入示例部分,假设您的系统上有两个以太网连接,例如,eth0
和 eth1
(这些是接口(interface)名称)---所以 ifconfig 将打印这两个作为输出的结果!
So,to identify these two separate interfaces,there must be an
interface identifier
.The interface identifier(generally 64-bit) is either automatically generated from the interface's MAC address using the modified EUI-64 format, obtained from a DHCPv6 server, automatically established randomly, or assigned manually.
此外,您提到的接口(interface)是一些最常用的接口(interface):-
'lo0', 'gif0', 'stf0', 'en0', 'en1', 'en2', 'bridge0', 'p2p0'
lo0
---本地网络连接(0为第一个局域网连接)en0
---以太网连接(0,1,2 表示以太网上的第一个、第二个和第三个连接)bridge0
---到这台机器的桥接p2p0
---点对点连接不知道gif
,stf
。请注意这里有逻辑连接/虚拟连接,而不是物理连接的限制(使用网卡)!
关于linux - 什么是接口(interface)标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24962329/
我正在尝试在我的代码库中为我正在编写的游戏服务器更多地使用接口(interface),并了解高级概念以及何时应该使用接口(interface)(我认为)。在我的例子中,我使用它们将我的包相互分离,并使
我有一个名为 Widget 的接口(interface),它在我的整个项目中都在使用。但是,它也用作名为 Widget 的组件的 Prop 。 处理此问题的最佳方法是什么?我应该更改我的 Widget
有一个接口(interface)可以是多个接口(interface)之一 interface a {x:string} interface b {y:string} interface c {z:st
我遇到了一种情况,我需要调用第三方服务来获取一些信息。这些服务对于不同的客户可能会有所不同。我的界面中有一个身份验证功能,如下所示。 interface IServiceProvider { bool
在我的例子中,“RequestHandlerProxy”是一个结构,其字段为接口(interface)“IAdapter”,接口(interface)有可能被调用的方法,该方法的输入为结构“Reque
我有一个接口(interface)Interface1,它已由类A实现,并且设置了一些私有(private)变量值,并且我将类A的对象发送到下一个接受输入作为Interface2的类。那么我怎样才能将
假设我有这样的类和接口(interface)结构: interface IService {} interface IEmailService : IService { Task SendAs
有人知道我在哪里可以找到 XML-RPC 接口(interface)的定义(在 OpenERP 7 中)?我想知道创建或获取对象需要哪些参数和对象属性。每个元素的 XML 示例也将非常有帮助。 最佳答
最近,我一直在阅读有关接口(interface)是抽象的错误概念的文章。一篇这样的帖子是http://blog.ploeh.dk/2010/12/02/InterfacesAreNotAbstract
如果我有一个由第三方实现的现有 IInterface 后代,并且我想添加辅助例程,Delphi 是否提供了任何简单的方法来实现此目的,而无需手动重定向每个接口(interface)方法?也就是说,给定
我正在尝试将 Article 数组分配给我的 Mongoose 文档,但 Typescript 似乎不喜欢这样,我不知道为什么它显示此警告/错误,表明它不可分配. 我的 Mongoose 模式和接口(
我有两个接口(interface): public interface IController { void doSomething(IEntity thing); } public inte
是否可以创建一个扩展 Serializable 接口(interface)的接口(interface)? 如果是,那么扩展接口(interface)的行为是否会像 Serilizable 接口(int
我试图在两个存储之间创建一个中间层,它从存储 A 中获取数据,将其转换为相应类型的存储 B,然后存储它。由于我需要转换大约 50-100 种类型,我希望使用 map[string]func 并根据 s
我正在处理一个要求,其中我收到一个 JSON 对象,其中包含一个日期值作为字符串。我的任务是将 Date 对象存储在数据库中。 这种东西: {"start_date": "2019-05-29", "
我们的方法的目标是为我们现有的 DAO 和模型类引入接口(interface)。模型类由各种类型的资源 ID 标识,资源 ID 不仅仅是随机数,还带有语义和行为。因此,我们必须用对象而不是原始类型来表
Collection 接口(interface)有多个方法。 List 接口(interface)扩展了 Collection 接口(interface)。它声明与 Collection 接口(int
我有一个 Java 服务器应用程序,它使用 Jackson 使用反射 API 对 DTO 进行一般序列化。例如对于这个 DTO 接口(interface): package com.acme.libr
如果我在 Kotlin 中有一个接口(interface): interface KotlinInterface { val id: String } 我可以这样实现: class MyCla
我知道Java中所有访问修饰符之间的区别。然而,有人问了我一个非常有趣的问题,我很难找到答案:Java 中的 private 接口(interface)和 public 接口(interface)有什
我是一名优秀的程序员,十分优秀!