• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程技巧 > TCP关闭问题详细介绍

TCP关闭问题详细介绍

作者:lqh 字体:[增加 减小] 来源:互联网 时间:2017-05-12

lqh 通过本文主要向大家介绍了tcp三次握手详细过程,tcp四次挥手详细过程,tcp四次握手详细过程,tcp排查问题,tcp粘包问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

摘要: 三次握手,四次挥手

意思是tcp建立连接时需要三次交互来完成,A发起连接

A ---  SYN  --> B
A <-- SYN + ACK --- B (1)
A ---  ACK  --> B
</div>

而关闭tcp连接需要四次交互,A发起关闭

A --- FIN --> B
A <-- ACK --- B (1)
A <-- FIN --- B
A --- ACK --> B (2)
</div>

这里在(1)时B开始处于CLOSE_WAIT状态,一直到收到ACK后B才转为CLOSED ,而A就处于TIME_WAIT状态,一直到2MSL(Max Segament Lifetime)才转为CLOSED

为什么需要2MSL才真正转为CLOSED?是因为需要缓冲时间万一B丢失ACK重发FIN的话还可以回复ACK,还有就是2MSL后“迷失”在网络上的包全部失效

大量的 TIME_WAIT 和 CLOSE_WAIT 会造成服务器的连接资源被浪费甚至占满后导致服务器服务拒绝,怎么解决?

解决TIME_WAIT

net.ipv4.tcp_tw_recycle = 1 #开启快速回收,默认0

net.ipv4.tcp_tw_reuse = 1 #开启重用,默认0

net.ipv4.tcp_fin_timeout = 30 # 减小fin_timeout,默认60,单位s

</div>

系统参数的配置可以解决time_wait,但是close_wait就没那么简单了

解决CLOSE_WAIT

一般都是服务端的代码问题。

绝大多数都是客户端发起关闭,这样可知HTTP服务器应该会有很多TIME_WAIT,不过当http使用keep-alive后服务端会主动断连。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • TCP关闭问题详细介绍

相关文章

  • 2017-05-12HTTPS的七个误解
  • 2017-05-12一个30多年编程经验的程序员总结
  • 2017-05-12phpMyAdmin“无法载入 mysql 扩展, 请检查 PHP 配置”问题的解决方案
  • 2017-05-12从学习到接单赚钱 十大网络技术人员推荐收藏的网站
  • 2017-05-12页面中加载优酷视频去掉广告的方法
  • 2017-05-12HTTP 2.0 详细介绍
  • 2017-05-12科学知识:时间复杂度计算方法
  • 2017-05-12微信小程序版的知乎日报开发实例
  • 2017-05-12微信小程序应用号开发教程详解
  • 2017-05-12几款开源的中文分词系统

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 为什么使用框架 使用框架的优缺点
    • 各种编程语言中$符号的意义
    • 高性能WEB开发 为什么要减少请求数,如何减少请求数!
    • bower 强大的管理web包管理工具
    • Web开发人员常用速查手册 英文集合推荐
    • 漂流瓶推送需求的逻辑实现代码
    • markdown简介和语法介绍
    • 高性能WEB开发 页面呈现、重绘、回流。
    • node安装cnpm代替npm
    • google提供二维码生成器

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有