TCP之种种连接异常】的更多相关文章

1. connect出错: (1) 若TCP客户端没有收到syn分节的响应,则返回ETIMEOUT错误:调用connect函数时,内核发送一个syn,若无响应则等待6s后再发送一个,若仍然无响应则等待24s后在发送一个,若总共等待75s后仍未收到响应则返回本错误: (2) 若对客户的syn响应是rst,则表明该服务器在我们指定的端口上没有进程在等待与之连接,这是一种硬错误,客户一收到rst马上返回ECONNREFUSED错误: (3) 若客户发送的syn在中间的某个路由器上引发了目的不可达icm…
本文介绍3种TCP连接异常的情况. 1.server端没有启动,client尝试连接 ./client dial failed: dial tcp 127.0.0.1:8080: connect: connection refused 通过tcpdump抓包,可以看到当server没有启动的时候,client向server8080端口发送数据后,client端会收到RST. 2.client端读数据,突然异常退出或直接close连接 2.1 准备 server server等待连接,如果有cli…
TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断开的情况 TAG: TCP连接异常断开  TCP断链   TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断开的情况 1) 在TCP协议中提供了KEE…
TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断开的情况 TAG: TCP连接异常断开  TCP断链   TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断开的情况 1) 在TCP协议中提供了KEE…
负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息? 原文: https://help.aliyun.com/document_detail/127193.html?spm=a2c4g.11186623.6.606.5b7a7ee5RD6Xai 问题现象: 负载均衡后端配置TCP服务端口后,后端业务日志中频繁出现类似如下网络连接异常错误信息.经进抓包分析,发现相关请求来自负载均衡服务器,同时负载均衡主动向服务器发送了RST数据包. 问题原因: 该问题和负载均衡的健康检…
原文网址:http://www.cnblogs.com/yejiurui/p/4173521.html 一.情况描述: 我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 adb connect异常 比如会出现下面这样 : [2014-12-18 16:18:26 - ] The connection to adb is down, and a severe error has occured. [2014-12-18 16:18:26 - ] You must r…
这两天一个项目在做压力测试的时候,发现只要并发数超过250个,连续测试两轮就会有连接异常出现,测试轮数越多出现越频繁,异常日志如下: Caused by: com.caucho.hessian.client.HessianConnectionException: 500: java.io.IOException: Error writing to server at com.caucho.hessian.client.HessianURLConnection.sendRequest(Hessia…
  一.情况描述:   我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 adb connect异常 比如会出现下面这样 : [2014-12-18 16:18:26 - ] The connection to adb is down, and a severe error has occured. [2014-12-18 16:18:26 - ] You must restart adb and Eclipse. [2014-12-18 16:18:26 - ]…
背景 早期京麦搭建 HTTP 和 TCP 长连接功能主要用于消息通知的推送,并未应用于 API 网关.随着逐步对 NIO 的深入学习和对 Netty 框架的了解,以及对系统通信稳定能力越来越高的要求,开始有了采用 NIO 技术应用网关实现 API 请求调用的想法,最终在 2016 年实现,并完全支撑业务化运行. 由于诸多的改进,包括 TCP 长连接容器.Protobuf 的序列化.服务泛化调用框架等等,性能比 HTTP 网关提升 10 倍以上,稳定性也远远高于 HTTP 网关. 架构 基于 Ne…
半打开(Half-Open)连接和半关闭(Half-Close)连接.TCP是一个全双工(Full-Duplex)协议,因此这里的半连接"半"字就是相对于全双工的"全"来说的. 全双工传输 英文写法是:Full-Duplex Transmissions 是指交换机在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音.目前的交换机都支持全双工. 全双工的好处在于迟延小,速度快. 与之对应的是[半双工]这个概念:就是指一…
原文链接 一.HTTP协议和TCP协议 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致.TCP有可靠,面向连接的特点. 二.HTTP协议的长连接和短连接 在HTTP/1.0中,默认使用的是短连接.也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就…
半打开(Half-Open)连接和半关闭(Half-Close)连接.TCP是一个全双工(Full-Duplex)协议,因此这里的半连接"半"字就是相对于全双工的"全"来说的. 全双工传输 英文写法是:Full-Duplex Transmissions 是指交换机在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音.目前的交换机都支持全双工. 全双工的好处在于迟延小,速度快. 与之对应的是[半双工]这个概念:就是指一…
在前面部分我们我们分别介绍了三次握手.四次挥手.同时打开和同时关闭,TCP连接还有两种场景分别是半打开(Half-Open)连接和半关闭(Half-Close)连接.TCP是一个全双工(Full-Duplex)协议,因此这里的半连接"半"字就是相对于全双工的"全"来说的. 一.半开连接 从协议定义的角度来说,TCP的半开连接是指TCP连接的一端异常崩溃,或者在未通知对端的情况下关闭连接,这种情况下不可以正常收发数据,否则会产生RST(后面内容我们在介绍RST).比如…
TCP的运输连接管理 TCP是面向连接的协议,有三个阶段:连接建立.数据传送 和 连接释放.运输连接的管理就是使运输连接的简历和释放都能正常地进行. 在TCP连接建立过程中要解决一下三个问题: 1.  要使每一方都能够确知对方的存在: 所以需要三次握手. 2.  要允许双方协商一些参数(如最大窗口值.是否使用窗口扩大选项和时间戳选项以及服务质量等). 3.  能够对运输实体资源(如缓存大小.连接表中的项目等)进行分配:建立TCB. TCP连接的建立采用跟客户-服务器模式.主动发起连接建立的应用进…
https://blog.csdn.net/chrisnotfound/article/details/80112736 上面的链接就是说明来 SO_KEEPALIVE 选项 为什么还需要 在应用层开发 心跳协议的原因  包括分布式系统开发中也必须自己设计  应用层 心跳协议的开发    熟悉基于TCP协议进行linux高性能.高并发服务端编程的朋友肯定应该知道每个文件描述符及其所占的资源对并发量的影响. 在这种7*24甚至*365不间断运行的服务器上,一个描述符被浪费,两个被浪费...如果被浪…
转自Http.tcp.Socket连接区别 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助. 1.TCP连接 要想明白Socket连接,先要明白TCP连接.手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在"无差别"的网络之上. 建立起一个TCP连接需要经过"三次握手": 第一次握手:…
转自:http://blog.sina.com.cn/s/blog_1549fb0710102whz2.html spring+ibatis程序测试时报错:java.sql.SQLException: Io 异常: Connection reset by peer, socket write error; sql-map-config.xml配置: <transactionManager type="JDBC" > <dataSource type="DBC…
1. 以指定配置文件启动Redis,否则配置的东西不生效 redis-cli shutdown 关闭 $ redis-server ./redis.conf 2.连接异常 redis.conf 配置文件Bind 127.0.0.1 改成0.0.0.0…
在前面的内容中我们介绍了TCP连接管理中最常见的三次握手方式和四次挥手的方式.但是有可能A和B两端同时执行主动打开并连接对方或者同时执行主动关闭连接(尽管发生这种情况的可能性比较低低),这个时候的流程就略有不同了.下面我们分别对同时打开(simultaneous open)连接和同时关闭(simultaneous)连接这两种情况分别进行介绍. 一.同时打开连接 同时打开连接是指通信的双方在接收到对方的SYN包之前,都进行了主动打开的操作并发出了自己的SYN包.如之前所说一个四元组标识一个TCP连…
ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a) 代码如下:执行Open过程中出现异常,信息为Unknown error 0x800a0e7a  C++ Code  1234567891011121314151617181920212223242526272829303132   try {     strConnect = L"Provider=ORAOLEDB.ORACLE.1;Password=" +                  u…
报错信息可以看出:由于没有正常的关闭连接,导致连接异常 Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream. at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:198) at redis.clients.util.RedisInputStream.readByte(Red…
因修改/etc/ssh权限导致的ssh不能连接异常解决方法 现象: $ssh XXX@192.168.5.21 出现以下问题 Read from socket failed: Connection reset by peer 起因: $sudo chmod 777 /etc/  -R (千万不要做,这是一个误操作) 导致了上面的结果 解决方法: #chmod 400 /etc/ssh/* 在重新连接就可以了. 本文来自:Linux学习网…
我们平常经常说UDP是不可靠连接,TCP是可靠连接,然而TCP为什么是可靠的呢 1. TCP和UDP的优缺点TCP 缺点: [1] 三次握手四次挥手,传输更多包,浪费一些带宽[2] 为了进行可靠通信,双方都要维持在线,通信过程中服务器server可能出现非常大的并发连接,浪费了系统资源,甚至会出现宕机[3] 确认重传也会浪费一些带宽,且在不好的网络中,会不断的断开和连接,降低了传输效率UDP 优点: [1] 没有握手,起步快延时小[2] 不需要维持双方在线,server不用维护巨量并发连接,节省…
运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接 最近在项目中可能要用到socket相关的东西来发送消息,所以初步研究了下socket的TCP和UDP实现方式,并且结合java1.5的concurrent.ExecutorService类来实现多线程. 具体实现方式见代码: 一.TCP方式: 1.服务端实现方式: TCP的服务端实现方式主要用到ServerSocket类,接收等待客户端连接的方法是accept(); 代码如下:类Sock…
环境:景安快云服务器(听说很垃圾,但是公司买的,我也刚来),CentOS-6.8-x86_64,Apache,MySQL5.1,PHP5.3. 问题:现公司有一个php系统,需要重复向后台发送ajax请求,但是会出现pending状态,我现在需要解决这个问题,或者说找到问题在服务器,代码,还是客户端,然后有个交代,但是不知道从何下手,毕竟还是it萌新啊.. 效果如图.两个特点,1:就是越往后的请求,pengding时间越长,且其中绝大部分时间被stalled占用(此问题网上有相关文章,但是没有解…
我们知道,一个基于TCP/IP的客户端-服务器的程序中,正常情况下,我会是启动服务器使其在一个端口上监听请求,等待客户端的连接:通过TCP的三次握手,客户端能够通过socket建立一个到服务器的连接:然后,两者就可以基于这个socket连接通信了.连接结束后,客户端(进程)会退出:在不需要继续处理客户请求的情况下,服务器(进程)也将退出.而且,当一个进程退出的时候,内核会关闭所有由这个进程打开的套接字,这里将触发TCP的四次挥手进而关闭一个socket连接.但是,在一些异常的情况下,譬如:服务器…
Mysql作为一个常用数据库,在互联网系统应用很多.有些故障是其自身的bug,有些则不是,这里以前段时间遇到的问题举例. 问题 当时遇到的症状是这样的,我们的应用在线上测试环境,JMeter测试过程中,发现每次压力测试开始时访问低前几个http request请求会超时,而之后的请求持续测试中都不会.最后一点是Tomcat的log并没有报什么错误. 压测的内容就是起200线程不停的向这个http页面发送请求,这个页面逻辑也比较简单,会在后端向数据库插入一条数据,连接池采用阿里的Druid(这个坑…
======================================================== Name or service not known 错误消息: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known 错误原因: MySQL数据库服务器上没有配置/ect/hosts,也没有DNS服务,导致MySQL服务线程解析IP对应的主机名时发生失败. 解决办法…
我们在介绍TCP头的时候,提到过其中有个RST标志位.当一个TCP报文中这个标志位打开的时候,我们叫做reset包(严格的说应该叫做reset段,但是很多时候段包帧并不加以区分)或者简单称呼为reset.RST.通常reset的产生是由于一个异常包导致,reset一般会导致TCP连接的快速断开.产生reset的几种常见的情形如下 向一个未打开的端口发送连接请求 应用程序主动终止一个连接 应用程序还没有接收缓存中的数据,连接被提前关闭 TWA(TIME-WAIT Assassination) 半开…
TCP 是面向连接的 , 在实际应用中通常都需要检测对端是否还处于连接中.如果已断开连接,主要分为以下几种情况: 1.           连接的对端正常关闭,即使用 closesocket 关闭连接. 2.           连接的对端非正常关闭,包括对端异常关闭,网络断开等情况. 对于第一种情况,对端正常关闭前都会告知对方,所以很好判断是否连接着. 对于第二组情况,比较麻烦,方法如下: Ÿ---------自己编写心跳包程序,简单的说也就是在自己的程序中加入一条线程,定时向对端发送数据包,…