![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
土豆爸爸
这个作者很懒,什么都没留下…
展开
-
阻塞IO 非阻塞IO IO多路复用 同步IO 异步IO
阻塞:可认为等同于挂起 非阻塞:可认为等同于不挂起,执行了就返回了。 阻塞IO:IO操作如果没有完成会一直挂起,使该进程或者线程进入休眠状态; 非阻塞IO:IO操作执行之后会立即返回,不会使进程或者线程进入休眠状态,如果没有完成,会返回返回错误; 同步:同步想表达的是这样一种情形,呃,只能写个各个博客惯用的例子描述:我想找lucy,打电话找不到,我就一直打,当然 ...原创 2017-02-03 11:22:23 · 663 阅读 · 0 评论 -
SO_REUSEPORT和SO_REUSEADDR
SO_REUSEPORT,顾名思义端口复用,linux3.9以后才引入 先上官方解释: Permits multiple AF_INET or AF_INET6 sockets to be bound to an identical socket address. This option must be set on each so原创 2018-02-11 15:44:00 · 281 阅读 · 0 评论 -
惊群
转自:https://www.pureage.info/2015/12/22/thundering-herd.html 1. 什么叫惊群现象 首先,我们看看维基百科对惊群的定义: The thundering herd problem occurs when a large number of processes waiting for an event are转载 2018-02-24 16:21:26 · 155 阅读 · 0 评论 -
非阻塞connect设计方法
Linux网络编程肯定不能少了connect,在短连接特别多的情况下,比如http代理,又或者公司的内部程序因为各种各样的原因最终弄成了短连接(可能是很扯的原因)。 套接字有阻塞,非阻塞两种,如果使用阻塞,那么就要看别人的脸色!!万一对方的服务不稳定,导致socket阻塞,然后本端线程阻塞…………,后面情况就不知道了,可能很严重,也可能无所谓。 所以一般都是建议能做成非阻塞,就做成非阻塞。 ...原创 2019-01-10 16:50:50 · 443 阅读 · 0 评论 -
close 和 shutdown
close和shutdown都是关闭套接字的系统调用函数 区别如下: 先说包交互流程: close会直接发送FIN包,并且(一般情况)不再接收对方发送的任何报文,如果有收到报文会回复RST。 shutdown有三类情况: 1,在参数是SHUT_RD,也就是只关闭了读的时候,是不会发送任何表明关闭了读的协议报文的。同时对端还可以发送报文,本端也会回复ack,但是本端在用系统调用rec...原创 2019-01-17 13:37:40 · 1045 阅读 · 0 评论 -
Nagle NoDelay CORK
Nagle算法的初衷是为了让网络上只有一个小包,需要对端Ack回来,再发送的可能是小包,也可能是中包,大包。 Nodelay算法指的是不关多大的包,只要调用了write就必须发送 CORK是为了让网络上尽可能少有小包,注意和Nagle区分开,不会太依赖ack。 延迟ack主要是为了减少单独ack报文的发送,具体应该怎么样设置?https://blog.tms.im/2017/05/15/de...原创 2019-03-06 13:43:06 · 172 阅读 · 0 评论 -
TCP/IP详解卷1协议攻击记录
书中很多章节提到了攻击,记录下: 与IP地址相关的攻击: 动态IP可能在精确度要求比较高的场合容易造成错误;通过wifi等网络非法或者其他途径接入,如果做了什么不允许的事情,ip地址拥有者将需要承担责任。 arp攻击: 伪造arp应答或者广播报文,让主机arp记录有误,或者通过arp代理伪装目的主机。 IP相关的攻击: 以前更多的是通过设置ip的某些选项来实现的,现在基本都做了升级。...原创 2019-03-11 23:13:58 · 218 阅读 · 0 评论