在write或send过程中——网络断了
来源:互联网 发布:新浪发帖软件 编辑:程序博客网 时间:2024/05/17 06:07
(iptables封端口,拔网线,对端宕机)—此时应用程序和操作系统都认为连接还是存在的。
Client端在没有收到Server端的ACK的情况下,会连续重传。
Linux2.6内核下测试结果为重传16次,总时常为15分钟左右,write或send将返回ETIMEOUT错误,同时发送RST包给Server端。
连续重传之间的时间差,分别是0.2、0.4、0.8、1.6、。。。。、120秒,这种倍乘关系称为“指数退避”。
当连接后,send或write过程中,iptables封端口,拔网线,对端宕机,TCP协议感知不到(所以在应用中才使用心跳机制,心跳超时后,服务器可认为连接已断开,主动断开连接),操作系统和应用程序认为连接还存在。从而应用程序会进行“重传操作”。
如果应用程序没有做处理,那么在重传结束前,一直会有问题。
因此在开发能够快速容灾的网络组建时,应该记录每个连接上一秒钟发过去请求的数量,收到请求的数量,当该值低于一个设定的值时,就应该关闭连接,重新建立连接。
如果连接可以建立,重新使用,不过不能建立,那么可以认为对端已经出问题。
0 0
- 在write或send过程中——网络断了
- 网络编程中read/write和send/recv
- UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
- socket中recv() send() read() write()区别
- socket中write,read,send,recv函数
- linux下网络编程send,recv,read,write的区别
- 网络编程read, write, recv, send函数返回值
- epoll机制:epoll_create、epoll_ctl、epoll_wait、close(在epoll的ET模式下,read和write或send和recv当返回值<0且errno=EAGAIN
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read、write、send、recv函数的比较
- socket中read write和recv send区别
- ActivityGroup简介
- nginx httpd apache对比
- 黑马程序员- html内容
- fill和memset的区别
- LeetCode之Path Sum
- 在write或send过程中——网络断了
- DevOps-chef的多节点环境搭建
- Android项目proguard代码混淆遇到的一系列问题,外部jar,Gson包等
- 九度 1120 全排列
- 今天开通博客了
- Android自学笔记 第三天
- KMP模板
- Redis学习笔记
- IOS中两个类之间参数传递