美文网首页Unix网络编程-卷1
UNIX网络编程-18-路由套接字

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

作者: YBHello | 来源:发表于2017-08-08 21:25 被阅读14次

    总纲:

    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网络编程

    相关文章

      网友评论

        本文标题:UNIX网络编程-18-路由套接字

        本文链接:https://www.haomeiwen.com/subject/uvexrxtx.html