UNP 学习笔记——套接字选项

栏目: IT技术 · 发布时间: 6年前

内容简介:UNP 学习笔记——套接字选项

1、SO_KEEPALIVE 套接字会对对端发送探测分节,发送后会有哪些情况?

  • 对端以期望的 ACK 响应
  • 对端以 RST 响应:对端已崩溃并且已经重新启动
  • 对端无任何响应:对端主机已经崩溃(非进程崩溃,否则会受到 FIN)或者网络不可达。如果根本没有响应,那么错误就是 ETIMEOUT,如果收到了 ICMP 错误响应,那么就是相应的错误,最常见的是 EHOSTUNREACH.

本选项一般是服务端设置,用来检测客户端是否崩溃。

2、SO_LINGER 套接字选项的作用是什么?

  • 当调用 close 函数后,默认操作是 close 函数立刻返回,系统会尝试把残留的数据发送到对端,但是并不保证对端会接受成功。
  • 当设置了 SO_LINGER 后,分为三种情况:
    • l_onoff 为 0:默认 TCP 设置,close 立刻返回
    • l_onoff 非0, l_linger 均为 0:TCP 将会立刻丢弃残留数据,并发送 RST 给对端
    • l_onoffl_linger 均为非 0:
      • 残留数据全部发送完,数据和 FIN 已被服务端确认
      • 延滞时间到,close 会返回 EWOULDBLOCK,套接字残留数据被丢弃

3、SO_RCVBUFSO_SNDBUF 套接字选项的作用?

设置发送缓冲区与接收缓冲区的大小。
相应的:

  • SO_RCVLOWATSO_SNDLOWAT 接收低水位标记与发送低水位标记
  • SO_RCVTIMEOSO_SNDTIMEO 接收和发送超时值

4、SO_REUSEADDRSO_REUSEPORT 套接字选项的作用?

  • SO_REUSEADDR 允许启动一个监听服务器并捆绑其众所周知的端口,即使以前建立的将该端口作为它们的本地端口的连接仍然存在。
  • SO_REUSEADDR 允许在一个端口上绑定统一服务器的多个实例,只要不同的本地 IP 地址即可。
  • SO_REUSEADDR 允许单个进程捆绑同一端口到多个套接字上,只要指定不同的本地 IP 地址即可
  • SO_REUSEADDR允许完全重复的绑定:如果传输协议允许(一般指的是 UDP),相同的 ip 地址和端口号可以绑定在不同的套接字上。

5、TCP_NODELAY 套接字选项的作用?

Nagle 算法主要是避免发送小的数据包,要求 TCP 连接上最多只能有一个未被确认的小分组,在该分组的确认到达之前不能发送其他的小分组。相反,TCP 收集这些少量的小分组,并在确认到来时以一个分组的方式发出去。

在默认的情况下, Nagle 算法是默认开启的,Nagle 算法比较适用于发送方发送大批量的小数据,并且接收方作出及时回应的场合,这样可以降低包的传输个数。当应用不是连续请求+应答的模型的时候,而是需要实时的单项的发送数据并及时获取响应,这种case就明显不太适合 Nagle 算法,明显有 delay 的。

Nagle 算法常常与另外一个 TCP 算法联合使用:ACK 延滞算法。该算法使得 TCP 在接受到数据后不立即发送 ACK,而是等待一小段时间才发送 ACK

API

int getsockopt(int sockfd,int level,int option,void *restrict optval,socklen_t restrict optlen);
int setsockopt(int sockfd,int level,int option,const void *optval,socklen_t optlen);

struct linger {
    int l_onoff;
    int l_linger;
}

以上所述就是小编给大家介绍的《UNP 学习笔记——套接字选项》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据化运营速成手册

数据化运营速成手册

胡晨川 / 电子工业出版社 / 2017-4 / 55

《数据化运营速成手册》用于提升互联网公司员工的数据应用能力,即数据化运营能力。首先,从最常用的数据图表切入,帮助执行层正确地绘图,管理层正确地看图;接着,梳理运营中最基本的数据应用知识,涉及数据获取、数据清洗、数据认知、分析框架、指标体系、运营实验等内容。然后,介绍作者认为必要的统计学知识,包括假设检验、方差分析、回归分析和时间序列分解,并引入了管理科学中的规划求解方法。最后,介绍了数据分析工具的......一起来看看 《数据化运营速成手册》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具