分享

inet_sock

 jijo 2009-03-17
struct--inet_sock
2007年10月12日 星期五 12:04
    inet_sock是INET域专用的一个socket表示,它是在struct sock的基础上进行的扩展,在基本socket的属性已具备的基础上,struct inet_sock提供了INET域专有的一些属性,比如TTL,组播列表,IP地址,端口等,下面是其完整定义:

struct inet_sock {
    struct sock             sk;
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
    struct ipv6_pinfo       *pinet6;
#endif
    __be32                  daddr;    
//IPv4的目的地址
    __be32                  rcv_saddr; //IPv4的本地接收地址
    __be16                  dport;     //目的端口
    __u16                   num;       //本地端口(主机字节序)
    __be32                  saddr;     //发送地址
    __s16                   uc_ttl;    //单播的ttl
    __u16                   cmsg_flags;
    struct ip_options       *opt;
    __be16                  sport;    
//源端口
    __u16                   id;        //单调递增的一个值,用于赋给iphdr的id域
    __u8                    tos;       //服务类型
    __u8                    mc_ttl;    //组播的ttl
    __u8                    pmtudisc;
    __u8                    recverr:1,
                            is_icsk:1,
                            freebind:1,
                            hdrincl:1,
//是否自己构建ip首部(用于raw协议)
                            mc_loop:1; //组播是否发向回路
    int                     mc_index; -//组播使用的本地设备接口的索引
    __be32                  mc_addr;   //组播源地址
    struct ip_mc_socklist   *mc_list; -//组播组列表
    struct {
        unsigned int        flags;
        unsigned int        fragsize;
        struct ip_options   *opt;
        struct rtable       *rt;
        int                 length;
        __be32              addr;
        struct flowi        fl;
    } cork;
};

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多