笔记本电脑使用一个或多个networking适配器连接到组织的networking。 我正在尝试编写一个工具来持续监视每个networking的连接状态和连接质量。 然而,我的networking知识受限制和术语混淆了我。
具体查找所有networking适配器。 有人build议我使用ifconfig
命令,它给了我所谓的“接口标识符”。
例如:
['lo0', 'gif0', 'stf0', 'en0', 'en1', 'en2', 'bridge0', 'p2p0']
我不太清楚这是如何帮助我解决我的问题,因为我不知道接口标识符是什么,我不知道如何利用这些信息。 我的假设是,他们代表一台计算机或networking中的路由器。
如果有人能够澄清这一点,或以通俗的话来向我解释,这将是非常有帮助的。
首先,您需要了解计算机中可能存在物理网卡(OR / AND逻辑网络适配器),以识别连接/管理连接。
接下来,您对接口标识符有一个错误的概念 。 你所说的(eth,virbr,lo)是接口。 在IPv4寻址方案中,我们没有接口ID。 我们在IPv6地址中有接口ID。
如IPv6的非常大的地址大小的收益中所述
在IPv4中,IP地址与用于底层数据链路层网络技术的地址没有关系。 使用以太网网络接口卡(NIC)连接到TCP / IP网络的主机具有以太网MAC地址和IP地址,但是这两个数字在任何方面都是截然不同的。
随着IPv6地址的大修,一个机会提出了自己创建一个更好的映射IP单播地址和物理网络地址的方法。 实现这种优越的映射技术是使IPv6地址变得如此之大的原因之一。 总共有128位,即使为网络前缀保留了全部48位,为站点子网保留了16位,我们仍然留下64位用于接口标识符,这与IPv4下的主机ID类似。
有这么多的位置给我们很大的灵活性。 只要该地址长度不超过64位,我们就可以将接口ID作为基础数据链路层硬件地址的基础,而不是为主机使用任意“组成”标识符。 由于实际上所有设备都使用64位或更少的第二层地址,因此使用这些地址作为IP地址中的接口标识符没有任何问题。 这提供了一个直接的好处:它使网络更容易管理,因为我们不必为每个主机记录两个任意数字。 IP地址可以来自MAC地址和网络标识符。 这也意味着我们可以在将来从MAC地址告诉IP地址,反之亦然。
访问此链接以更清楚地了解接口ID。
现在,回过头来澄清你的困惑,
所有的连接(接口),如Ethernet-0,Ethernet-1,WiFi-1等。 有自己的interface identifier
。你可以把它们看作是一种特殊的标识号码,它标识了当时可用的接口种类!
在Linux中键入ifconfig
时,将显示当前活动接口的状态。
现在来看一下示例部分,假设您的系统上有两个以太网连接,比如eth0
和eth1
(这些是接口名称),所以ifconfig会输出这两个连接!
因此,为了识别这两个独立的接口,必须有一个
interface identifier
。接口标识符(一般为64位)是自动生成的,使用从DHCPv6服务器获得的修改的EUI-64格式从接口的MAC地址自动生成随机或手动分配。
另外,你提到的接口是一些最常用的接口:
'lo0','gif0','stf0','en0','en1','en2','bridge0','p2p0'
lo0
—本地网络连接(局域网第一连接为0) en0
—以太网连接(0,1,2表示以太网上的第一,第二和第三连接) bridge0
—桥接到本机的连接 p2p0
—一个点对点的连接 不知道gif
, stf
。请注意,有逻辑连接/虚拟连接,而不是物理连接(使用NIC卡)的限制!
我发现,至少在OSX上有gif
和stf
man
条目。 这些是通用的隧道接口,以及IPv6到IPv4隧道接口(“六到四”)。