TCP半连接、长连接

news/2025/2/24 18:51:59

在 TCP 三次握手的时候,Linux 内核会维护两个队列,分别是:

  • 半连接队列(SYN 队列)
  • 全连接队列(accept 队列)

服务端收到客户端发起的 SYN 请求后,内核会把该连接存储到半连接队列,服务端收到第三次握手的 ACK 后,内核会把连接从半连接队列移除,然后创建新的完全的连接,并将其添加到 accept 队列,等待进程调用 accept 函数时把连接取出来

两个队列存在的目的是为了管理和优化TCP连接的建立过程

不管是半连接队列还是全连接队列,都有最大长度限制,超过限制时,内核会直接丢弃,或返回 RST 包

没有accept,能建立TCP连接吗 建立连接无需accept函数

建立连接的过程中根本不需要accept()参与, 执行accept()只是为了从全连接队列里取出一条连接

虽然都叫队列,但其实全连接队列(icsk_accept_queue)是个链表(accpet方便取出),而半连接队列(syn_table)是个哈希表(第三次握手来了方便找到是哪个socket)

服务端没有listen,客户端发起连接建立 ?服务端会回RST


http://www.niftyadmin.cn/n/5864718.html

相关文章

钉钉快捷免登录 通过浏览器打开第三方系统,

一、钉钉内跳转至浏览器的实现 使用钉钉JSAPI的跳转接口 在钉钉内通过dd.biz.navigation.openLink方法强制在系统浏览器中打开链接。此方法需在钉钉开发者后台配置应用权限,确保应用具备调用该API的资格37。 示例代码: dd.ready(() > {dd.biz.navigat…

vscode@右键文件夹或文件vscode打开一键配置

文章目录 abstract一键脚本在线下载代码并运行说明备用源码 abstract 有两大类方法:用vscode安装包重新安装,在双击安装包后勾选上相关选项(添加右键vscode打开菜单)另一类是你不想重新安装,现在也可以很方便的一键配置(还可以完成一定的自定义设置,比如菜单名称) 一键脚本 …

Unity VRoid+Blender+Unity 3D人物模型导入使用

Unity VRoid模型导出VRM后,经Blender导出FBX格式, 再放入Unity中调整的全过程实操 实在没有最新的解决方案,只能参考老视频教程 VRoid (.vrm) 导入Blender导入Unity和动画 详解全流程_哔哩哔哩_bilibili 诸多尝试后,整理出必要的软件版本搭配如下: VRoid: 由于导出的VRM模型…

【透过 C++ 实现数据结构:链表、数组、树和图蕴含的逻辑深度解析】

一、数组 (Array) 实现 1. 基础数组 #include <iostream> using namespace std;int main() {// 静态数组int staticArr[5] {1,2,3,4,5};// 动态数组int size 5;int* dynamicArr new int[size];// 访问元素cout << "Third element: " << dynam…

全面汇总windows进程通信(二)

在Windows操作系统下,实现进程间通信(IPC, Inter-Process Communication)有几种常见的方法,包括使用管道(Pipe)、共享内存(Shared Memory)、消息队列(Message Queue)、命名管道(Named Pipe)、套接字(Socket)等。本文介绍如下几种: 信号量(Semaphore)和互斥量(…

详细介绍STM32(32位单片机)外设应用

以下是关于STM32外设应用的详细介绍&#xff0c;结合其功能特点及实际应用场景进行分类说明&#xff1a; 一、基本接口与数字外设 GPIO&#xff08;通用输入输出端口&#xff09; 功能&#xff1a;支持输入/输出模式切换&#xff0c;可配置为推挽、开漏、上拉/下拉等模式&#…

C#上位机--循环语句

序言 在 C# 编程中&#xff0c;循环语句是非常重要的控制结构&#xff0c;它允许我们重复执行一段代码&#xff0c;直到满足特定的条件。通过使用循环&#xff0c;我们可以高效地处理大量数据&#xff0c;简化代码逻辑。本文将详细介绍 C# 中四种常见的循环语句&#xff1a;Fo…

SCSS——CSS的扩展和进化

一、SCSS是什么&#xff1f; SCSS&#xff08;Sassy CSS&#xff09; 就相当于CSS&#xff08;层叠样式表&#xff09;突然获得了编程语言的力量——可以写变量、玩函数、拆模块&#xff0c;甚至是“继承”样式&#xff01;实际上&#xff0c;SCSS就是一个让前端开发者效率飙升…