
网络
文章平均质量分 57
网络编程遇到一些常见问题
Acmen_voip
这个作者很懒,什么都没留下…
展开
-
Linux上能打开文件描述符的个数,有哪些限制
怎么通过fs.nropen、soft nofile等参数修改linux能打开到文件数原创 2023-03-05 12:16:37 · 1015 阅读 · 0 评论 -
DNS域名解析应用之我见
域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。DNS协议属于TCP/IP协议五层中的第五层,即应用层;在一些分布式架构设计中,服务端对外往往提供一个统一的域名,这个域名后台对应多个IP,即多台服务器,这样可以将外面的访问分配到不同的服务器上,实现负载均衡等。下面是一个A记录的抓包报文:...原创 2020-12-26 10:25:35 · 182 阅读 · 0 评论 -
服务器(比如:HTTP)出现大量TIME_WAIT的解决方法
对TCP几种状态了解的同学,应该都清楚,tcp主动断开连接的一方会出现TIME_WAIT状态,TIME_WAIT状态会保持2MSL的时间,这个主要是用来防止,主动断开的一方发送对最后一个FIN的ACK丢失,导致被动passive close的一方的LAST-ACK定时器超时重传FIN,避免TCP状态的混乱。但是在服务器大并发的情况下,这种默认的机制可能会导致服务器维护大量的TIME_WAIT状态,导致大量资源的浪费,可能会影响后续连接和请求的处理。为了解决这一现象,我们可以通过修改服务器的配置...原创 2020-12-13 14:46:58 · 1229 阅读 · 2 评论 -
IP分片(IP Fragment),记录一次操作系统被某同学裁剪编译后,导致IP分片出了问题,从而是UDP报文大于1500的通信都出了异常
1、为什么要进行IP分片? 常见的以太网的MTU(Maxitum Transmission Unit)值为1500,如果需要转发的报文长度超出其接口的MTU值,则在转发该报文时,需要先将报文进行分片,分为适合该链路传输类型的报文,由接收方完成报文的重组。另外需要注意,不同链路的MTU值可能不同。2、报文的分片和重组 该部分内容主要从一个网友那里参考过来http://www.vants.org/?post=106,感谢作者易隐者(如有侵权,请联系我,然后我删除)。 ...原创 2020-12-12 19:23:57 · 1113 阅读 · 0 评论 -
libuv出现UV_ECANCELED的解决方法
最近项目中使用libuv,在某种异常情况下,发现出现大量的close_wait状态,通过日志发现调用uv_tcp_connect时,报ECANCELED:operation canceled错误,这时没有处理这种异常,导致服务端超时主动将tcp连接断开,应用程序没有处理这种异常,去关闭socket,导致程序出现大量的close_wait。 另外可以参照github上关于uvECANCELED的讨论,连接地址如下: `uv_write` `uv_close` stat...原创 2020-12-04 16:56:01 · 1337 阅读 · 0 评论 -
ICMP Destination unreachable(Host administratively prohibited)
最近在一个fs学习交流群,一个网友在群里问,说他的freeswitch服务器是在电脑的虚拟机上装着,查看freeswitch服务是正常启动的,但是电脑上的SIP软电话分机注册不上,说电脑上的防火墙都关闭了,虚拟机和电脑互相ping都能ping通,说抓包注册报文也发送出去了,但是仔细看他的抓包,提示ICMP Destination unreachable(Host administratively prohibited),提示主机管理禁止,由于已经排查了电脑的防火墙已经关闭了,那就有可能是虚拟机的防火墙.原创 2020-09-12 16:58:47 · 5101 阅读 · 0 评论 -
TCP套接口编程,调用connect函数可能出现的情况
如果是TCP套接口,调用conncet函数将激发TCP的三路握手过程,而且仅在连接建立成功或出错时才返回,其中出错返回可能有以下几种情况:1、若TCP客户没有收到SYN分节的响应,则返回ETIMEDOUT错误。举例来说,调用connect函数时,4.4BSD内核发送一个SYN,若无响应则等待6秒钟后再发送一个,若无响应则等待24秒钟后再发送一个(TCPv2第828页),若总共等待了75秒钟后仍未收到响应则返回该错误。2、若对客户的SYN的响应是RST(表示复位),则表明该服务器主机在我们指定的端口上原创 2020-09-05 12:02:52 · 469 阅读 · 0 评论 -
网络编程TCP中RST出现的几个条件
RST是TCP在发生错误时发送的一种TCP分节。产生RST的三个条件:1、目的地为某端口的SYN到达,然而该端口上没有正在监听的服务器;2、TCP想取消一个已有连接;de3、TCP接收到一个根本不存在的连接上的分节。...原创 2020-09-05 11:39:54 · 451 阅读 · 0 评论