TCP与UDP挖掘机(二)套接字选项

套接字选项
用于IP层的套接字选项(IPPROTO_IP)
参数 解释
IP_ADD_MEMBERSHIP 加入组播(广播)组。
每个套接字最多可以连接一组IP_ADD_MEMBERSHIPS组。
IP_ADD_SOURCE_MEMBERSHIP 加入特定于源的组播组。
每个套接字最多可以连接一组IP_MAX_MEMBERSHIPS组。
IP_BLOCK_SOURCE 阻止从给定源到给定多播组的数据。
IP_UNBLOCK_SOURCE 取消阻止从给定源到给定多播组的数据。
IP_DONTFRAG 设置或重置IP标头中的do not fragment标志。
IP_DROP_MEMBERSHIP 离开组播(广播)组。
IP_DROP_SOURCE_MEMBERSHIP 离开特定于源的组播组。
IP_MULTICAST_IF 设置应发送传出多播数据报的接口。
IP_MULTICAST_IF2 设置应发送传出多播数据报的IPV6接口。
IP_MULTICAST_LOOP 指定应将 传出的多播数据报的副本 回传到发送主机,只要它是多播组的成员即可。
IP_MULTICAST_TTL 在传出的 多播数据报的IP头中设置生存时间(TTL)。
IP_OPTIONS 设置IP标头选项。
IP_RECVLCLIFADDR 指示是否应返回要接收的数据报的本地接口。
IP_TOS 在IP标头中设置服务类型(TOS)和优先级。
IP_TTL 在IP标头中设置生存时间(TTL)。
用于TCP层的套接字选项(IPPROTO_TCP
参数 解释
TCP_KEEPALIVE 指定TCP在将报文发送到连接的另一端之前所需要等待的特定于套接字的活动时间。此设置是特定于套接字,将用于替代TCP属性TCOKEEPALV。仅在套接字上启用了SO_KEEPALIVE时才会使用它。
TCP_NODELAY 指定TCP是否遵循Nagle算法 决定何时发送数据。Nagle算法代表通过减少必须发送包的个数来增加网络软件系统的效率。即尽可能发送大块数据避免网络中充斥着大量的小数据块。如果要追求高实时性,需要设置关闭Nagle算法;如果需要追求减少网络交互次数,则设置开启Nagle算法。
用于套接字层的套接字选项(SOL_SOCKET)
参数 解释
SO_ACCEPTECONNABORTED 启用侦听套接字,以便在accept()之前重置侦听backlog上的连接时,阻塞的accept() 将会返回ECONNABORTED。
SO_BROADCAST 将消息发送到广播地址。
如果目标中指定的接口支持广播数据包,则启用此选项可让应用程序发送广播消息。
SO_DEBUG 指定低级别调试是否处于活动状态。
SO_DONTROUTE 绕过标准的路由机制,即不查找路由。
根据目标地址的网络部分定向到相应的网络接口。启用后,此选项允许将数据包发送到直接连接的网络(主机具有接口的网络)。
SO_ERROR 返回套接字上的任何挂起错误,并清除错误状态。
可以使用它来检查连接的数据报套接字上的异步错误或其他异步错误(其中一个套接字调用未明确返回的错误)。
SO_KEEPALIVE 保持连接。
在空闲套接字上发送探测,以验证套接字是否仍处于活动状态。
SO_LINGER 延迟关闭连接。
启用此选项,在调用close时如果存在未发送的数据时,在close期间将阻止调用应用程序,直到数据被传输或连接超时。
SO_OOBINLINE 切换带外数据的接收。
启用此选项会导致带外数据在接收时放入正常数据输入队列,使其可用于recvfrom和recv,而无需在这些调用中指定MSG_OOB标志。
禁用此选项会导致带外数据在接收时放入优先级数据输入队列,只有通过在这些函数中指定MSG_OOB标志才能使其可用于recvfrom和recv。
什么是带外数据
SO_RCVBUF 获取接收缓冲区的大小。
SO_RCVLOWAT 获取接收缓冲区的下限。
这是在成功完成read,recv,recvfrom,activate_on_receipt或activate_on_receipt_with_length函数之前必须接收的最小数据量。
SO_RCVTIMEO 获取接收超时值。
该值是系统在超时操作之前等待read,recv,recvfrom,tpf_read_TCP_message,activate_on_receipt,activate_on_receipt_with_length,activate_on_receipt_of_TCP_message,accept,activate_on_accept或connect函数成功完成的时间。返回值0表示系统不会超时。
SO_REUSEADDR 允许本地地址复用。
启用此选项允许绑定已使用的本地地址。
SO_SNDBUF 设置发送缓冲区的大小。
SO_SNDLOWAT 获取发送缓冲区的下限。
启用此选项即代表这是发送缓冲区的必须可用最小空间量。以允许处理select函数。
SO_SNDTIMEO 获取发送超时值。
该值是系统在超时操作之前等待发送,发送,写入或写入功能完成的时间。
SO_TCPDELAY 返回获取TCP延迟确认计时器值。
该值是z / TPF系统在发送独立确认(ACK)以确认此TCP套接字上的数据之前等待的时间。
SO_TCPDUACK 获取快速重传值的重复确认(ACK)。
SO_TYPE 获取套接字的类型。
SO_UDPMPSIZ 获取套接字的最大数据包大小。
此选项进队UDP套接字有效。

发布了38 篇原创文章 · 获赞 6 · 访问量 3752

猜你喜欢

转载自blog.csdn.net/qq_46522785/article/details/105015847