当前位置: 首页 > article >正文

LS-NET-012-TCP的交互过程详解

LS-NET-012-TCP的交互过程详解

附加:TCP如何保障数据传输

TCP的交互过程详解

一、TCP协议核心交互流程

TCP协议通过三次握手建立连接数据传输四次挥手终止连接三大阶段实现可靠传输。整个过程通过序列号、确认应答、窗口控制等机制保障传输可靠性。

1.1 三次握手建立连接(Connection Establishment)

sequenceDiagram participant Client participant Server Client->>Server: SYN=1, Seq=X Note right of Client: SYN_SENT状态 Server->>Client: SYN=1, ACK=1, Seq=Y, Ack=X+1 Note left of Server: SYN_RCVD状态 Client->>Server: ACK=1, Seq=X+1, Ack=Y+1 Note right of Client: ESTABLISHED状态 Note left of Server: ESTABLISHED状态

1.2 数据传输(Data Transfer)

  • 滑动窗口机制:动态调整发送窗口大小实现流量控制
  • 累计确认:接收方通过ACK号确认已接收数据的最大连续字节
  • 超时重传:RTO(Retransmission Timeout)动态计算机制

1.3 四次挥手终止连接(Connection Termination)

sequenceDiagram participant Client participant Server Client->>Server: FIN=1, Seq=U Note right of Client: FIN_WAIT_1状态 Server->>Client: ACK=1, Seq=V, Ack=U+1 Note left of Server: CLOSE_WAIT状态 Server->>Client: FIN=1, ACK=1, Seq=W, Ack=U+1 Note left of Server: LAST_ACK状态 Client->>Server: ACK=1, Seq=U+1, Ack=W+1 Note right of Client: TIME_WAIT状态(2MSL等待)

二、实际应用场景示例

2.1 网页访问场景

  1. 浏览器发起HTTP请求时自动完成TCP三次握手
  2. 服务器响应后保持连接(Keep-Alive机制)
  3. 页面加载完成后触发四次挥手

2.2 视频会议系统

  • 使用TCP保障语音/视频数据的完整性和顺序性
  • 动态调整窗口大小应对网络波动
  • 快速重传机制保障实时性

三、四大厂商TCP相关配置对比

配置项思科(Cisco)华为(Huawei)华三(H3C)锐捷(Ruijie)
TCP最大连接数ip tcp max-connections 5000tcp max-connection number 5000tcp max-connection 5000tcp max-connections 5000
半开连接检测ip tcp intercept mode interceptfirewall tcp-syn-check enabletcp syn-flood protect enabletcp anti-synflood enable
连接超时时间ip tcp synwait-time 30tcp timer syn-timeout 30tcp syn-timeout 30tcp syn-timeout 30
窗口缩放因子ip tcp window-size 65535tcp window-size 65535tcp window 65535tcp window 65535
快速重传阈值ip tcp fast-retransmit 3tcp fast-retransmissions 3tcp fast-retransmit 3tcp fast-retransmit 3

四、典型配置命令示例

4.1 思科设备配置

! 调整TCP参数
ip tcp path-mtu-discovery
ip tcp window-size 65535
ip tcp synwait-time 30! 配置SYN Flood防护
ip tcp intercept mode intercept
ip tcp intercept max-incomplete high 1000

4.2 华为设备配置

# 设置TCP连接参数
tcp timer syn-timeout 30
tcp max-connection number 5000# 启用SYN Cookie防护
firewall tcp-syn-check enable

4.3 华三设备配置

// 配置TCP优化参数
tcp window 65535
tcp syn-timeout 30// 启用SYN Flood防护
tcp syn-flood protect enable

4.4 锐捷设备配置

# 调整TCP窗口大小
tcp window 65535# 配置抗攻击策略
tcp anti-synflood enable
tcp anti-synflood threshold 1000

五、学习资源推荐

  1. RFC 793 - Transmission Control Protocol
    TCP协议官方规范文档
  2. 《TCP/IP详解 卷1:协议》(W.Richard Stevens著)
    经典网络协议教材,深入解析TCP实现细节
  3. Cisco TCP/IP协议栈配置指南
    思科官方TCP配置文档
  4. 华为TCP优化白皮书
    企业级TCP性能优化方案

六、常见问题排查

6.1 连接建立失败排查步骤

  1. 检查SYN包是否被防火墙拦截
  2. 验证服务端监听端口状态
  3. 确认双方路由可达性
  4. 检查TCP MSS值是否匹配

6.2 数据传输异常处理

graph TD A[发现数据丢包] --> B{检查网络拥塞} B -->|是| C[调整窗口大小] B -->|否| D{检查链路质量} D -->|误码率高| E[更换物理线路] D -->|正常| F[检查TCP校验和]

相关文章:

LS-NET-012-TCP的交互过程详解

LS-NET-012-TCP的交互过程详解 附加:TCP如何保障数据传输 TCP的交互过程详解 一、TCP协议核心交互流程 TCP协议通过三次握手建立连接、数据传输、四次挥手终止连接三大阶段实现可靠传输。整个过程通过序列号、确认应答、窗口控制等机制保障传输可靠性。 1.1 三次…...

每日算法刷题Day1 5.9:leetcode数组3道题,用时1h

1.LC寻找数组的中心索引(简单) 数组和字符串 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 思想: 计算总和和左侧和,要让左侧和等于右侧和,即左侧和总和-左侧和-当前数字 代码 c代码: class Solution { public:i…...

解构认知边界:论万能方法的本体论批判与方法论重构——基于跨学科视阈的哲学-科学辩证

一、哲学维度的本体论批判 (1)理性主义的坍缩:从笛卡尔幻想到哥德尔陷阱 笛卡尔在《方法论》中构建的理性主义范式,企图通过"普遍怀疑-数学演绎"双重机制确立绝对方法体系。然而哥德尔不完备定理(Gdel, 19…...

PVE WIN10直通无线网卡蓝牙

在 Proxmox VE (PVE) 中直通 Intel AC3165 无线网卡的 **蓝牙模块**(通常属于 USB 设备,而非 PCIe 设备)需要特殊处理,因为它的蓝牙部分通常通过 USB 连接,而 Wi-Fi 部分才是 PCIe 设备。以下是详细步骤: …...

第六节第二部分:抽象类的应用-模板方法设计模式

模板方法设计模式的写法 建议使用final关键字修饰模板方法 总结 代码: People(父类抽象类) package com.Abstract3; public abstract class People {/*设计模板方法设计模式* 1.定义一个模板方法出来*/public final void write(){System.out.println("\t\t\t…...

在另一个省发布抖音作品,IP属地会随之变化吗?

你是否曾有过这样的疑惑:出差旅游时在外地发布了一条抖音视频,评论区突然冒出“IP怎么显示xx省了?”的提问?随着各大社交平台上线“IP属地”功能,用户的地理位置标识成为公开信息,而属地显示的“灵敏性”也…...

卷积神经网络-从零开始构建一个卷积神经网络

目录 一、什么是卷积神经网络CNN 1.1、核心概念 1.2、卷积层 二、什么是卷积计算 2.1、卷积计算的例子: 2.2、点积 2.3、卷积与点积的关系 2.4、Padding(填充) 2.4.1、Padding的主要作用 1、控制输出特征图尺寸 2、保留边缘信息 3. 支持深层网络训练 2.4.2、Str…...

力扣-101.对称二叉树

题目描述 给你一个二叉树的根节点 root , 检查它是否轴对称。 class Solution { public:bool check(TreeNode* p,TreeNode* q){if(!p&&!q)return true;if(!p&&q||!q&&p)return false;if(p->val!q->val)return false;return check(p…...

Tomcat和Nginx的主要区别

1、功能定位 Nginx:核心是高并发HTTP服务器和反向代理服务器,擅长处理静态资源(如HTML、图片)和负载均衡。Tomcat:是Java应用服务器,主要用于运行动态内容(如JSP、Servlet)&#xf…...

贪心算法:最小生成树

假设无向图为: A-B:1 A-C:3 B-C:1 B-D:4 C-D:1 C-E:5 D-E:6 一、使用Prim算法: public class Prim {//声明了两个静态常量,用于辅助 Prim 算法的实现private static final int V 5;//点数private static final int INF Integer.MA…...

uniapp-文件查找失败:‘@dcloudio/uni-ui/lib/uni-icons/uni-icons.vue‘

uniapp-文件查找失败:‘dcloudio/uni-ui/lib/uni-icons/uni-icons.vue’ 今天在HBuilderX中使用uniapp开发微信小程序时遇到了这个问题,就是找不到uni-ui组件 当时创建项目,选择了一个中间带的底部带选项卡模板,并没有选择内置u…...

Vue2.x 和 Vue3.x 对比-差异

Vue3的优点 diff算法的提升 vue2中的虚拟DOM是全量的对比,也就是不管是写死的还是动态节点都会一层层比较,浪费时间在静态节点上。 vue3新增静态标记(patchflag ),与之前虚拟节点对比,只对比带有patch fla…...

MacOS 用brew 安装、配置、启动Redis

MacOS 用brew 安装、配置、启动Redis 一、安装 brew install redis 二、启动 brew services start redis 三、用命令行检测 set name tom get name...

agentmain对业务的影响

前面一篇已经说了java agent技术主要有premain和agentmain两种形式,如果大部分业务已经在线上运行的话,不方便用premain的方式来实现,所以agentmain的方式是更加通用、灵活的 由于RASP是与用户业务运行在同一个jvm中的 ,所以RASP…...

精益数据分析(56/126):创业阶段的划分与精益数据分析实践

精益数据分析(56/126):创业阶段的划分与精益数据分析实践 在创业和数据分析的探索之旅中,理解创业阶段的划分以及与之对应的精益数据分析方法至关重要。今天,依旧怀揣着与大家共同进步的心态,深入研读《精…...

archlinux中挂载macOS的硬盘

问: 你好,我如何在archlinux中挂载macOS的硬盘呢?/dev/sda4 5344161792 7813773311 2469611520 1.2T Apple HFS/HFS AI回答: 你好!在 Arch Linux 中挂载 macOS 的 HFS 或 HFS 硬盘(例如 /dev/sda4&#x…...

JVM Optimization Learning(七)-GC

一、JVM Optimization 1、进程溢出调查 模拟 如何开启GC日志 如何开启GC日志 一般来说,JDK8及以下版本通过以下参数来开启GC日志: -XX:PrintGCDetails -XX:PrintGCDateStamps -Xloggc:gc.log如果是在JDK9及以上的版本,则格式略有不同&…...

uniapp小程序轮播图高度自适应优化详解

在微信小程序开发过程中,轮播图组件(swiper)是常用的UI元素,但在实际应用中经常遇到高度不匹配导致的空白问题。本文详细记录了一次轮播图高度优化的完整过程,特别是针对固定宽高比图片的精确适配方案。 问题背景 在开发"零工市场&quo…...

CSS从入门到精通:全面解析CSS核心知识体系

引言 CSS(层叠样式表)是前端开发的基石,掌握其核心知识能显著提升页面设计与布局能力。本文基于系统化学习资料,深入讲解CSS语法、选择器优先级、盒子模型、定位等核心概念,结合代码示例与实用技巧,助你从入…...

基于ESP32控制的机器人摄像头车

DIY Wi-Fi 控制的机器人摄像头车:从零开始的智能探索之旅 在当今科技飞速发展的时代,机器人技术已经逐渐走进了我们的生活。今天,我将带你一起探索如何制作一个 Wi-Fi 控制的机器人摄像头车,它不仅可以远程操控,还能通…...

基于STM32的LCD信号波形和FFT频谱显示

一、项目准备 主要利用LCD驱动中的画点和画连线函数,驱动是正点原子给我写好了的画点和画线的函数等些相关函数 void LCD_Draw_Circle(u16 x0,u16 y0,u8 r); //画圆 void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); //画线 二、画波形图函数实…...

(9)被宏 QT_DEPRECATED_VERSION_X_6_0(“提示内容“) 修饰的函数,在 Qt6 中使用时,会被编译器提示该函数已过时

(1)起因是看到 Qt 的官方源代码里有这样的写法: #if QT_DEPRECATED_SINCE(6, 0) //里面的都是废弃的成员函数QT_WARNING_PUSHQT_WARNING_DISABLE_DEPRECATEDQT_DEPRECATED_VERSION_X_6_0("Use the constructor taking a QMetaType inst…...

关于mac配置hdc(鸿蒙)

关于mac配置hdc(鸿蒙) 在最开始配置的hdc -v时候老是出现格式不匹配 于是乎在网上找官网也不行,最后在csdn上找到了这篇文章Mac配置hdc才有的头绪 环境变量的问题 自己做一个简单的总结 首先在访达里面打开ide 打开之后输入下面的命令,一步一步的找…...

是 OpenCV 的 CUDA 模块中用于在 GPU 上对图像或矩阵进行转置操作函数cv::cuda::transpose

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::cuda::transpose 是 OpenCV 的 CUDA 模块中的一个函数,用于在 GPU 上对图像或矩阵进行转置操作(Transpose&#xff0…...

SQL常用操作大全:复制表、跨库查询、删除重复数据

大家好&#xff0c;欢迎来到程序视点&#xff01;我是你们的老朋友.小二&#xff01; SQL常用操作精华总结 表结构与数据操作 复制表结构&#xff1a; SELECT * INTO b FROM a WHERE 1<>1 (SQL Server专用) SELECT TOP 0 * INTO b FROM a (更通用) 拷贝表数据&#…...

服务器中存储空间不足该怎么办?

服务器作为存储数据信息的重要网络设备&#xff0c;随着企业业务的不断拓展&#xff0c;所需要存储的数据信息也在不断增加&#xff0c;最终会导致服务器中存储空间不足&#xff0c;这不仅会影响到服务器系统性能&#xff0c;还会造成业务无法正常执行&#xff0c;那么&#xf…...

PPT图表怎么制作?说5款自己使用过的PPT图表制作工具

PPT图表怎么制作&#xff1f;准备一份吸引人的PPT演示文稿时&#xff0c;图表往往能起到画龙点睛的作用。但是&#xff0c;对于很多人来说&#xff0c;制作既美观又专业的图表却不是一件容易的事情。今天&#xff0c;我们就来聊聊如何利用一些优秀的工具制作PPT图表。 1、亿图图…...

[传输层]TCP协议

文章目录 报文格式连接管理可靠传输 面向连接的传输层协议 每一条TCP连接只能有两个端点&#xff0c;每一条TCP连接只能是点对点的 TCP提供可靠有序&#xff0c;不丢不重 TCP是面向字节流的 TCP工作模型&#xff1a; 发送方有一个缓存&#xff0c;缓存&#xff1a; 1.待发送 2…...

Linux(1)编译链接和gcc

1、gcc分布编译链接 &#xff08;1&#xff09;预编译 gcc -E main.c -o main.i &#xff08;2&#xff09;编译 gcc -S main.i -o main.s &#xff08;3&#xff09;汇编 gcc -c main.s -o main.o &#xff08;4&#xff09;链接 gcc main.o -o main 执行&#xff1a…...

视频编解码学习7之视频编码简介

视频编码技术发展历程与主流编码标准详解 视频编码技术是现代数字媒体领域的核心技术之一&#xff0c;它通过高效的压缩算法大幅减少了视频数据的体积&#xff0c;使得视频的存储、传输和播放变得更加高效和经济。从早期的H.261标准到最新的AV1和H.266/VVC&#xff0c;视频编码…...