tcp服务器在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:

未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。

Backlog参数:表示未连接队列的最大容纳数目。

SYN-ACK 重传次数 服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。

半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。

转载于:https://www.cnblogs.com/menghuanbiao/p/5212145.html

TCP连接之未连接队列的理解[转]相关推荐

  1. win10电脑显示网络未连接到服务器,教你win10电脑网络连接显示未连接不可用的方法...

    win10电脑使用时间久了,会出现各种各样的故障问题,最常见属于网络问题.近期一位用户说电脑莫名其妙无法识别网络,桌面右下角提示"连接不可用",无法上网是一个比较烦人...下面本站 ...

  2. p2p显示kad能连接 服务器未连接,P2P连不上kad网络怎么办

    今天小编的朋友问小编p2p没有连上kad网络怎么办,这问题让他们非常苦恼,为了让大家告别p2p没有连上kad网络怎么办的烦恼,所以小编写了有关解决这办法的教程,希望能帮助到大家. 1.右击-打开文件位 ...

  3. 彻底解决连上了网却不能上网问题:未连接到互联网

    彻底解决连上了网却不能上网问题 问题描述: 你尚未连接 或者 未连接到互联网 代理服务器可能有问题 如图: 解决方法: 打开网络和Internet设置 点击最下面的代理 关闭手动设置代理即可 之后就能 ...

  4. 网络状态是未连接,但是可以上网。强迫症患者福利

    电脑的网络连接提示未连接,但是上网不受影响. 原因是执行 for %1 in(%windir%\system32\*.dll) do regsvr32.exe /s %1 后导致的 修复方法 在cmd ...

  5. 设置 DevMgr_Show_NonPresent_Devices 令未连接的历史设备在 Windows 设备管理器中现形

    转自:http://blogs.itecn.net/blogs/alexis/archive/2011/07/07/How-to-show-NonPresent-Devices-in-Device-M ...

  6. 深入理解TCP/IP协议-TCP建立与终止连接

    转载自  深入理解TCP/IP协议-TCP建立与终止连接 一.引言   TCP 是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.连接创建与终止的状态变化图如下: ...

  7. 从Linux源码看Socket(TCP)的listen及连接队列

    从Linux源码看Socket(TCP)的listen及连接队列 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的角度看 ...

  8. 文档服务器连接未响应,win7DNS服务器未响应或者未连接问题的解决

    win7DNS服务器未响应或者未连接问题的解决 win7DNS服务器未响应或者未连接问题的解决 经常遇到别人问这个问题,今天搜集了一下网络上的解决方案,然后系统的整理了一下,便于大家理解和解决问题.我 ...

  9. tcp长连接和短连接的区别_TCP --- 连接

    一个TCP连接由4个元组组成:2个ip地址和2个端口号 tcp三次握手 为什么是三次握手 解决历史连接问题 通过三次握手才能阻止重复历史连接的初始化 通过三次握手,才能对通讯双方的初始序号初始化 如果 ...

最新文章

  1. SBB:南土所梁玉婷、孙波等跨气候带土壤移置揭示了气候变暖及施肥对土壤固氮微生物递增的环境过滤作用...
  2. LeetCode Array Partition I
  3. 方法传递java_Java 程序将方法作为参数传递给其他方法
  4. 使用jspsmartupload完成简单的文件上传系统
  5. mysql中sex设置男女_MYSQL常用命令(3)
  6. Object/Relation Mapping 对象关系映射
  7. 杨中科.NET5视频教程更新了:DI、配置系统、Logging、EF Core等
  8. 基于IdentityServer4 实现.NET Core的认证授权
  9. 是时候开始用C#快速开发移动应用了
  10. 黄聪:ThinkSAAS开发文档 常用函数 模版修改
  11. name选择器_CSS 选择器
  12. hdu5334(2015多校4)--Virtual Participation(构造)
  13. 26秒!全球销量第一的AI音箱就被腾讯黑掉了,然后变身窃听器
  14. 奇安信代码安全实验室五人入选“2020微软 MSRC 最具价值安全研究者”榜单
  15. 使用JFlash烧写boot教程
  16. unity3d 绘制小地图_Unity3D —— 小地图制作插件NJG MiniMap
  17. Linux下JIRA版本5.0.1的安装.破解.汉化
  18. 揭秘HTML5小游戏排名,究竟哪些游戏最受欢迎?
  19. cdp备份和oracle备份,CDP与快照:两种不同数据保护方法
  20. torch.Tensor.requires_grad属性的使用说明

热门文章

  1. Xcode 新项目删除 storyboard 文件
  2. 【教程】Linux DNS 服务器安装、配置及维护
  3. 【收藏】网络故障处理手册大全,看完再也不怕出问题了
  4. 【无标题】12.04 Serverless Meetup 深圳站 | Call 你来参加
  5. html 3d转换动画,开源项目:CSS 3D转换和动画学习示例教程
  6. 实际开发什么场景用到线程池_线程池的具体业务场景分析
  7. laravel redis_如何将redis优化
  8. 非递归快速排序php,快排序的非递归实现(原创)
  9. 1977标准_超过8分,就是痛风!附痛风诊断新标准和治疗原则
  10. mysql大量数据分页优化_mysql大量数据分页优化