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; };
|
|