TCP是因特网中的传输层协议,使用三次握手协议建立连接,下面是TCP建立连接的全过程。

TCP断开连接的过程:TCP四次挥手。

TCP/IP 协议簇分层结构

数据链路层主要负责处理传输媒介等众多的物理接口细节;

网络层负责处理数据分组在网络中的活动,包括上层数据报文的分割、选路 等;

传输层则负责为两台主机提供端到端的通信;

应用层将负责处理应用程序的特定细节。

其中,IP 协议是网络层的核心协议,用来提供不可靠、无连接的数据传递服务;而 TCP 协议则处于传输层,其基于不可靠无连接的 IP 协议能够为两台主机提供面向连接的、可靠的通信。

探测 TCP 连接断连的三种常用方法

探测 TCP 连接是否断连或是工作正常的原理比较简单:定期向连接的远程通信节点发送一定格式的信息并等待远程通信节点的反馈,如果在规定时间内收到来自远程节点的正确的反馈信息,那么该连接就是正常的,否则该连接已经断连。依据该原理,目前常用的探测方法有以下三种。

应用程序的自我探测

应用程序本身附带探测其自身建立的 TCP 连接的功能。这种方法具有极大的灵活性,可以依据应用本身的特点选择相应的探测机制和功能实现。然而,实际应用中,大部分应用程序均没有附带自我探测的功能。

第三方应用程序的探测

此种方法就是在服务节点上安装相应的第三方应用程序来探测该节点上所有的 TCP 连接是否正常或是已经断连。该方法最大的不足就是需要所有支持探测的客户端能够识别来自该探测应用的数据报文,因此,实际应用中比较少见。

TCP 协议层的保活探测

最常用的探测方法就是采用 TCP 协议层提供的保活探测功能即 TCP 连接保活定时器。尽管该功能并不是 RFC 规范的一部分,但是几乎所有的类 Unix 系统均实现了该功能,所以使得该探测方法被广泛使用。

转载:http://www.ibm.com/developerworks/cn/aix/library/0808_zhengyong_tcp/ TCP 连接断连问题剖析

http://blog.csdn.net/hguisu/article/details/38700899  TCP连接的状态详解以及故障排查

http://blog.csdn.net/kkkkkxiaofei/article/details/12966407 Tcp通信中服务器处理客户端意外断开

最新文章

  1. 跟我一起数据挖掘(23)——C4.5
  2. Unity中简单使用Opengl
  3. 学习C语言的数组
  4. 修复iPhone的safari浏览器上submit按钮圆角bug
  5. C++面向过程解决三阶行列式问题
  6. I.MX6 Ubuntu core porting
  7. k-d tree算法
  8. HDU-1256-画8
  9. html的语法注意事项
  10. Python记录wsgi
  11. java & jdk
  12. POJ1015-Jury Compromise-dp
  13. node.js小案例_留言板
  14. centos7 安装php5.6
  15. Qt Creator 4.3.0,Quick Designer里面也看以同时看到和编辑qml code了(Qt5.9的配套IDE)
  16. 第七章 二叉搜索树 (d1)AVL树:重平衡
  17. PHP-FPM高负载的解决办法
  18. git配置用户名邮箱
  19. Python学习---重点模块之logging
  20. TCP系列34—窗口管理&流控—8、缓存自动调整

热门文章

  1. 【VSFTP服务】vsftpd文件传输协议
  2. mysql批量更新数据(性能优化)--第二种方式
  3. WPF ToggleButton Style
  4. RSA应用指数与模生成公钥(ArcGIS Server)
  5. [基础] - 从xx语言是跨平台的说起
  6. Javaweb常用解决问题连接
  7. colmap编译过程中出现,无法解析的外部符号错误 “__cdecl google::base::CheckOpMessageBuilder::ForVar1(void)”
  8. 关于javascript,多种函数封装!!
  9. 信号量(Posix)
  10. vue父子组件的通信