UNIX网络编程-18-路由套接字

总纲:

  1. 路由套接字
    AF_ROUTE
  2. 机制
    进程到内核
    内核到进程
    sysctl 机制
  3. 路由套接字数据结构
  4. sysctl 机制-SNMP-MIB

细节

  • 数据链路套接字地址结构

struct sockaddr_dl
从内核返回到应用层的,关于接口的链路层信息
MAC地址,接口名称,接口索引等信息

  • 读写路由套接字
    原理:建立一个 AF_ROUTE 的原始(SOCK_RAW)套接字,向该套接字写入对应的数据结构,数据结构里携带参数;写完后,从该套接字读取数据即为根据参数获取到的来自内核的信息,信息仍然以数据结构的方式存储。

添加、变更、删除路由,获取、锁定路径信息,其他从内核获取的信息。
携带参数是,数据结构指定将要携带哪些数据,携带的地址信息放在数据结构尾部,同数据结构一同写入套接字。
返回的数据,数据结构觉得携带了哪些信息,携带的地址信息内容在随后的数据字段里。

  • sysctl 机制
    原理:使用 sysctl 系统调用,可以获取或设置内核参数。内核参数以树状结构组织的节点,SNMP-MIB的机制。对于路由,使用:CTL_NET -> AF_ROUTE 节点下的信息。mib 是以数组的方式传递。

sysctl 系统调用,传递 MIB 信息,并传入用于存放设置或获取的信息地址。
返回的信息是以 “数据结构 + 地址信息” 的方式存储。
net_rt_iflist 使用 CTL_NET -> AF_ROUTE -> 0 -> <family> -> NET_RT_IFLIST -> <flags> 的方式获取接口列表。

详细内容参加:UNIX网络编程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0 01、网络管理的五大功能(包括每项功能的具体情况) 1.配置管理:ISO定义的管理功能域中,配置管理包括视图管...
    哈熝少主阅读 3,404评论 1 20
  • socket是对TCP/IP协议族的封装,并对网络编程开发人员提供可用的接口,可以说,任何网络编程都离不开sock...
    无心雨眸阅读 3,206评论 0 4
  • 套接字地址结构 sockaddr_in是网络套接字地址结构,大小为16字节,定义在<netinet/in>头文件中...
    luoxn28阅读 857评论 0 1
  • 不曾有约 却能相遇 不是前世的邂逅 而是永恒的追逐 时光匆匆 你不曾一刻停留 岁月冉冉 我添上四季妆容 亲疏远近 ...
    杨小康_9095阅读 151评论 0 3
  • 【原创】 2017—10—19 坚持分享第211天 早上,因为当天的内容没有发布,又重新听了刘老师...
    禾雨分享阅读 433评论 0 0