TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT。  
 
1、LISTENING状态
  FTP服务启动后首先处于侦听(LISTENING)状态。

2、ESTABLISHED状态
  ESTABLISHED的意思是建立连接。表示两台机器正在通信。

3、CLOSE_WAIT
    对方(客户端)主动关闭连接或者网络异常导致连接中断,这时我方(服务端)的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

4、TIME_WAIT
    我方主(服务端)动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
    目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。

5、SYN_SENT状态
  SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多SYN_SENT的原因。

端口状态说明 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT相关推荐

  1. TCP协议端口状态说明:CLOSE-WAIT、TIME_WAIT 、LISTENING、SYN_SENT、ESTABLISHED、LAST_ACK、CLOSED

    了解TCP协议端口的连接状态,对排除和定位网络或系统故障会有很大帮助,因此了解一下是有必要的: 一.LISTENING  提供某种服务,侦听远方TCP端口的连接请求,当提供的服务没有被连接时,处于LI ...

  2. tcp协议的端口状态

    Listening Syn_sent syn_rcvd established close_wait time_wait --------- 对方主动关闭(对方调用close()), 我方的状态变为 ...

  3. TCP端口状态 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT详解,以及三次握手,滑动窗口

    参考文章:端口状态 LISTENING.ESTABLISHED.TIME_WAIT及CLOSE_WAIT详解,以及三次握手,滑动窗口

  4. 端口状态 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT详解,以及三次握手,滑动窗口

    本文根据众多互联网博客内容整理后形成,引用内容的版权归原始作者所有,仅限于学习研究使用 网上查了一下端口状态的资料,我下面总结了一下,自己学习学习: TCP状态转移要点     TCP协议规定,对于已 ...

  5. TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT

    一. 首先说下tcp端口的几种状态: 1.LISTENING状态 FTP服务启动后首先处于侦听(LISTENING)状态. 2.ESTABLISHED状态 ESTABLISHED的意思是建立连接.表示 ...

  6. 计算机端口 closewait,TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT

    一. 首先说下tcp端口的几种状态: 1.LISTENING状态 FTP服务启动后首先处于侦听(LISTENING)状态. 2.ESTABLISHED状态 ESTABLISHED的意思是建立连接.表示 ...

  7. 端口状态LISTENING、ESTABLISHED

    端口状态 LISTENING.ESTABLISHED.TIME_WAIT及CLOSE_WAIT详解,以及三次握手,滑动窗口 https://blog.csdn.net/zzhongcy/article ...

  8. TIME_WAIT和CLOSE_WAIT状态区别

    在服务器的日常维护过程中,会经常用到下面的命令: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 它会显示例如 ...

  9. 服务端大量处于TIME_WAIT和CLOSE_WAIT状态连接的原因

    服务端大量处于TIME_WAIT和CLOSE_WAIT状态连接的原因 1.服务端大量处于TIME_WAIT状态的连接原因? 1.HTTP没有使用长连接 2.HTTP长连接超时 3.HTTP长连接的请求 ...

最新文章

  1. kivy texture图片格式和opencv numpy图片格式互转
  2. 还没掌握Linux文件权限与目录配置命令?就这还不点进来看看干货
  3. problem k: 查找某一个数_quot;细节魔鬼quot; 二分查找
  4. vue项目封装axios
  5. 背景宽高随文本变化_中科大提出ContourNet:更准确的任意形状场景文本检测新方法...
  6. 码云上传项目时出现空目录的解决办法
  7. noi.ac #289. 电梯(单调队列)
  8. 智能车制作pdf 王盼宝_智能车制作——从元器件、机电系统、控制算法到完整的智能车设计(Word+PDF+ePub+PPT)...
  9. 谈谈单片机编程思想——状态机
  10. 不管怎么换相,电机始终反转 。这是怎么回事?
  11. 产品读书《社群经济:移动互联网时代未来商业驱动力》
  12. 《你坏-大冰》阅读笔记
  13. python模拟访问js_百度统计原理分析-利用PHP/Python实现模拟访问
  14. van-search自动聚焦
  15. Neural Baby Talk学习笔记
  16. HTB打靶(Active Directory 101 Reel)
  17. 什么是多线程上下文切换?
  18. 嵌入式驱动那年的笔试面试-有干货
  19. maven出现lastupdated文件原因与分析
  20. android .beats音效安装器,魔声音效安装器:Beats Audio Installer

热门文章

  1. dddddddddddd
  2. Centos8上安装mysql8遇到SELinux is preventing /usr/libexec/mysqld from write access on the directory mysql
  3. c语言中fread读取结构体,fread读取结构体注意事项
  4. JavaScript 简介
  5. Android视频开发进阶(part1-关于视频的那些术语)
  6. 李俊峰 不能搞新能源 人民战争
  7. Vue2.0-vue基础
  8. [英语单词] gated; cycle gated
  9. 生活中常见的操作系统
  10. Zabbix端口监控