操作系统 
首页 > 操作系统 > 浏览文章

linux中网络接口名称限制讲解

(编辑:jimmy 日期: 2024/11/28 浏览:3 次 )

Linux中每个网络接口都有一个名称,可以使用ifconfig命令来查询当前系统中的接口。

那么这些接口命名时是否有要求或者限制呢,比如格式或者长度限制。

从表面上看似乎没有限制可以随意命名,在一般应用场景中也可以正常工作,当在特殊应用场合中就会因为接口名称的原因出现莫名其妙的问题。

问题1:接口名称长度过长

应用场景:使用网络造包、发包工具进行向外发包时(比如mz工具),需要指定网络接口。

问题:当这个接口名称的长度过长时就会出现发包失败情况。

原因:看如下代码。

来自标准linux源代码(include/linux/socket.h)  
struct sockaddr {  
<span style="white-space:pre">    </span>sa_family_t sa_family; /* address family, AF_xxx */  
 <span style="white-space:pre">   </span>char sa_data[14]; /* 14 bytes of protocol address */  
};  

当应用程序使用socket向内核发包时,会调用struct sockaddr结构来设置发包的协议族(sa_family)和接口名称(sa_data[14]),当指定的接口名称长度超过13字节时,比如一个桥接口名称为br-0123456789abcd,最终保存到sa_data[14]中的接口名称就会被截断为br-0123456789,这样由于接口不存在就会导致发包失败。

结论:网络接口名称长度不超过13个字节。

上一篇:Linux内核环境下如何申请大块内存?
下一篇:Linux内核与根文件系统的关系详解
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap