Chinaunix首页 | 论坛 | 博客
  • 博客访问: 426249
  • 博文数量: 47
  • 博客积分: 1669
  • 博客等级: 上尉
  • 技术积分: 585
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-04 23:27
文章分类

全部博文(47)

文章存档

2011年(23)

2010年(24)

分类: LINUX

2010-09-28 17:29:09

IP_HDRINCL

如果一个原始套接口设置该选项,则我们必须为所有发送到此原始套接口上的数据报构造自己的IP头部。

IP_OPTIONS

设置此选项允许我们在IPv4头部中设置IP选项。这要求掌握IP头部中IP选项的格式信息。

IP_RECVDSTADDR

该选项导致所接收到的UDP数据报的目的IP地址由函数recvmsg作为辅助数据返回。

IP_RECVIF

该选项导致所接收到的UDP数据报的接口索引由函数recvmsg作为辅助数据返回。

IP_TOS

该选项使我们可以给TCPUDP套接口在IP头部中设置服务类型字段。如果我们给此选项调用getsockopt,则放到外出IP数据报头部的TOS字段中的当前值将返回(缺省为0)。还没有办法从接收到的IP数据报中取此值。


可以将TOS设置为如下的值:

·  IPTOS_LOWDELAY:最小化延迟

·  IPTOS_THROUGHPUT:最大化吞吐量

·  IPTOS_RELIABILITY:最大化可靠性

·  IPTOS_LOWCOST:最小化成本  

IP_TTL

用次选项,可以设置和获取系统用于某个给定套接口的缺省TTL值(存活时间字段)。与TOS一样,没有办法从接收到的数据报中得到此值。

ICMP6_FILTER

可获取和设置一个icmp6_filter结构,他指明256个可能的ICMPv6消息类型中哪一个传递给在原始套接口上的进程。 

IPV6_ADDRFORM

允许套接口从IPv4转换到IPv6,反之亦可。

IPV6_CHECKSUM

指定用户数据中校验和所处位置的字节偏移。如果此值为非负,则内核将(1)给所有外出分组计算并存储校验和;(2)输入时检查所收到的分组的校验和,丢弃带有无效校验和的分组。此选项影响出ICMPv6原始套接口外的所有IPv6套接口。如果指定的值为-1(缺省值),内核在此原始套接口上将不给外出的分组计算并存储校验和,也不检查所收到的分组的校验和。

IPV6_DSTOPTS

设置此选项指明:任何接收到的IPv6目标选项都将由recvmsg作为辅助数据返回。此选项缺省为关闭。

IPV6_HOPLIMIT

设置此选项指明:接收到的跳限字段将由recvmsg作为辅助数据返回。

IPV6_HOPOPTS

设置此选项指明:任何接收到的步跳选项都将由recvmsg作为辅助数据返回。

IPV6_NEXTHOP

这不是一个套接口选项,而是一个可指定个sendmsg的辅助数据对象的类型。此对象以一个套接口地址结构指定某个数据报的下一跳地址。

IPV6_PKTINFO

设置此选项指明:下面关于接收到的IPv6数据报的两条信息将由recvmsg作为辅助数据返回:目的IPv6地址和到达接口索引。

IPV6_PKTOPTIONS

大多数IPv6套接口选项假设UDP套接口使用recvmsgsendmsg所用的辅助数据在内核与应用进程间传递信息。TCP套接口使用IPV6_PKTOPTIONS来获取和存储这些值。

IPV6_RTHDR

设置此选项指明:接收到的IPv6路由头部将由recvmsg作为辅助数据返回。

IPV6_UNICAST_HOPS

类似于IPv4IP_TTL,它的设置指定发送到套接口上的外出数据报的缺省跳限,而它的获取则返回内核将用于套接口的跳限值。为了从接收到的IPv6数据报中得到真实的跳限字段,要求使用IPV6_HOPLIMIT套接口选项。

TCP_KEEPALIVE

它指定TCP开始发送保持存活探测分节前以秒为单位的连接空闲时间。缺省值至少为7200秒,即2小时。该选项仅在SO_KEEPALIVE套接口选项打开时才有效。 

TCP_MAXRT

它指定一旦TCP开始重传数据,在连接断开之前需经历的以秒为单位的时间总量。值0意味着使用系统缺省值,值-1意味着永远重传数据。

TCP_MAXSEG

允许获取或设置TCP连接的最大分节大小(MSS)。返回值是我们的TCP发送给另一端的最大数据量,他常常就是由另一端用SYN分节通告的MSS,除非我们的TCP选择使用一个比对方通告的MSS小的值。如果此选项在套接口连接之前取得,则返回值为未从另一端收到的MSS选项的情况下所用的缺省值。

TCP_NODELAY

如果设置,此选项禁止TCPNagle算法。缺省时,该算法是使能的。
Nagle
算法的目的是减少WAN上小分组的数目。

Nagle算法常常与另一个TCP算法联合使用:延迟ACKdelayed ACK)算法。

解决多次写导致Nagle算法和延迟ACK算法负面影响的方法:

1.   使用writev而不是多次write

2.   合并缓冲区,对此缓冲区使用一次write

3.   设置TCP_NODELAY选项,继续调用write多次,这是最不可取的解决方法。

TCP_STDURG

它影响对TCP紧急指针的解释。

 

原文:http://www.cnblogs.com/riky/archive/2006/11/24/570713.aspx

阅读(4148) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-29 11:35:43

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com