计算机网络——TCP连接管理

news/2024/4/29 23:58:40/文章来源:https://blog.csdn.net/qq_42544728/article/details/128032862

本文将会介绍如何建立和拆除一条TCP连接,TCP的连接会显著的增加人们感受到的时延(尤其是在Web冲浪时)。同时一些常见的网络攻击SYN洪范攻击利用了TCP连接管理的弱点。
假定运行一台主机(客户)上的一个进程想和另一台主机(服务器上)的一个进程建立一条连接;客户端进程会首先通知客户端TCP,建立一个与服务器上层某个进程之间的连接。具体步骤如下:

TCP连接管理

  • 第一步:客户端发送SYN
  • 第二步:服务端接收TCP SYN
  • 第三步:客户端接收SYNACK,并且分配缓存和变量


第一步:客户端发送SYN

首先,客户端TCP会首先向服务端的TCP发送一个特殊的TCP报文段,该报文段中不包含应用层的数据。在保温段的首部中的一个标志位(也就是SYN比特)会被置1。因此,该特殊报文段被称之为SYN报文段

另外,客户会随机选一个初始序号(client_isn),并且把该编号放置于起始的TCP SYN报文段的序号字段中。该报文段会被封装在一个IP数据报中,并且发送给服务器。


第二步:服务端接收TCP SYN

一旦包含TCP SYN的报文段IP数据报到达服务器主机(假设确定到达了),服务器会从这个数据报中提取TCP SYN报文段,并且给该TCP连接分配TCP缓存和变量,并且向客户端发送允许连接的报文段。

在完成三次握手的第三步之前分配这些缓存和变量,会让TCP容易受到称之为SYN的洪泛的拒绝服务攻击。

这些允许连接的报文段不应该包含应用层的数据,不过,在报文段的首部却包含了三个重要的信息:

  • 首先,SYN比特会被置1。
  • 其次,该TCP报文段的首部的确认号字段被重置为client_isn + 1
  • 最后,服务器选择自己的初始序号server_isn,并且将其放置到TCP报文段首部的序号字段中。

这个允许连接的报文段实际上表明了:我接受了你发起建立的SYN分组,该分组带有初始序号的client_isn,服务器同意建立该连接,服务器初始序号server_isn,该允许连接的报文段称之为SYNACK报文段SYNACK segment)。


第三步:客户端接收SYNACK,并且分配缓存和变量

在接受了SYNACK报文段之后,客户也要给该连接分配缓存和变量。客户主机则向服务器发送了另一个报文段,最后一个报文段对服务器的允许连接的报文段进行了确认(该客户端通过把server_isn + 1放置到TCP报文段首部的确认字段中完成)。

由于连接已经建立,所以该SYN比特重置0,该三次握手的第三个阶段可以在报文段负载中携带客户到服务器的数据。

在这里插入图片描述

假设客户端要关闭连接,则会引起客户TCP向服务器进程发送一个特殊的TCP报文段。该特殊的报文段让其首部的一个标志位也就是FIN比特被设置1

当服务器接收到该报文段之后,就像发送方回送一个确认报文段,其FIN被设置1,最后,该客户对这个服务器的终止保温段进行了确认。此时,两台主机上用于连接的所有的资源均被释放。

在这里插入图片描述

在一个TCP连接的生命周期中,运行在每一台主机的TCP协议在各种TCP状态,如下图表明客户端TCP会经历一系列的典型TCP状态。

客户的TCP开始处于closed关闭态。客户的应用程序发起了一个新的TCP连接。引起了客户端的TCP向服务器的发送了一个SYN报文段。在发送过SYN报文段之后,客户端的TCP就进入了SYN-SENT状态;其将会等待服务的TCP对客户端的发送报文段进行确认并且SYN比特置1的一个报文段。

在收到这样的一个报文段之后,客户TCP进入established已建立状态,当处于该状态时,TCP客户端就能够发送和接收包含有效载荷(也就是应用层产生的数据)的TCP报文段了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_36746.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流程编排、如此简单-通用流程编排组件JDEasyFlow介绍

作者:李玉亮 JDEasyFlow是企业金融研发部自研的通用流程编排技术组件,适用于服务编排、工作流、审批流等场景,该组件已开源(https://github.com/JDEasyFlow/jd-easyflow),目前在部门的内部业务系统和科技输出系统中广泛应用&…

通过PreparedStatement预防SQL注入

通过PreparedStatement预防SQL注入 简介:本文只讲PreparedStatement预防SQL注入的写法,大家学会就好。 推荐学习路线:JDBC数据库的连接->Connection(数据库连接对象)->Statement->ResultSet->通过Prepare…

Spring Boot 简介及快速搭建

Spring Boot 简介及快速搭建 springboot的优点: –快速构建一个独立的 Spring 应用程序 ; –嵌入的 Tomcat 、 Jetty 或者 Undertow,无须部署 WAR 文件; –提供starter POMs来简化Maven配置和减少版本冲突所带来的问题&#xff1…

【云原生 | Kubernetes 系列】--Gitops持续交付 Argo Rollouts Analysis

1. Argo Rollouts 由一个控制器和一组CRD组成,可为K8s提供高级部署功能 - blue-green - canary - canary analysis 结合外部指标系统金丝雀 - experimentation 实验性的结果 - progressive delivery 渐进式交付,精准管控外部流量策略,不用关心后端部署机制支持Ingress Contro…

深度学习 Day 20——优化器对比实验

深度学习 Day 20——优化器对比实验 文章目录深度学习 Day 20——优化器对比实验一、前言二、我的环境三、前期工作1、设置GPU2、导入数据3、配置数据集4、数据可视化三、构建模型四、训练模型五、模型评估1、Accuracy与Loss图2、评估模型六、最后我想说一、前言 🍨…

2022 谷歌出海创业加速器展示日: 见证入营企业成长收获

经历三个月的沉淀,迎来了展示日的大放异彩。10 家入营企业的路演分享,带来诸多启发 ——企业出海有什么挑战和难点?加入谷歌出海创业加速器,团队有哪些收获?三个月的培训和交流,带来了怎样的感受&#xff1…

【车间调度】遗传算法求解车间调度问题(含甘特图)【含Matlab源码 2216期】

⛄一、车间调度简介 1 车间调度定义 车间调度是指根据产品制造的合理需求分配加工车间顺序,从而达到合理利用产品制造资源、提高企业经济效益的目的。车间调度问题从数学上可以描述为有n个待加工的零件要在m台机器上加工。问题需要满足的条件包括每个零件的各道工序…

arduino 复习题

名词解释 中断 计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行 中断服务程序 用于 CPU 处理中断的程序 中断源 引起中断的原因,或…

柯桥成人英语培训机构哪家好,新陈代谢到底是什么?

新陈代谢到底是什么? Metabolism is a combination of biochemical processes that your body uses to convert food into energy. These metabolic processes include breathing, eating and digesting food, the delivery of nutrients to your cells through the blood, th…

软件被人后台篡改了收款码属于入侵吗?

最近很多做平台的小伙伴,碰到了同样的问题,就是软件程序后台被恶意篡改收款二维码 这个问题出现在平台主身上无疑是雪上加霜,第一时间找到了小蚁君,分析了一下当时的情况,先安装了小蚁的入侵检测系统,显示…

华为机试 - TLV解析Ⅰ

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 TLV编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value表示信元的值。 码…

3d-face-reconstruction比较

摘要:比较近3年,6篇顶会3d-face-reconstruction重建效果。 1:Deep3D **发表时间:**2020 成就: 1)在REALY和REALY (side-view)两个Benchmark上取得 State-of-the-art。 2)官方github上成绩: 3DMM&#xf…

计算机硬件和软件

文章目录一 计算机硬件1)主板2)显示器3)键盘4)鼠标二 计算机软件(一)系统软件(1)操作系统(2)BIOS(3)设备驱动程序(二&…

产品公开后就不能再申请专利了吗?

问题一:申请专利会导致产品技术泄密吗? 很多人担心申请专利后会导致自己的专利技术公之于众,会让同行模仿生产。其实,我们不妨反向思考一下,假如我们没有申请专利,我们销售生产出去的产品就不容易被模仿吗…

Linux之权限【读、写、执行】【详细总结】

目录权限相关介绍rwx权限详解rwx作用到文件rwx作用到目录文件及目录权限实际案例权限修改第一种方式,,-,变更权限案例演示:第二种方式:通过数字变更权限chmod urwx,grx,ox 文件目录名 chmod 751 文件目录名修改文件所…

基于DPDK(x86平台)应用性能优化实践

产生性能瓶颈有多方面的原因,包括硬件(自身能力限制或BIOS设置不当)、操作系统(某些feature没打开)和软件。软件方面的性能瓶颈主要是由于编码不当导致,常见原因有以下几种: 数据结构cache lin…

[附源码]java毕业设计疫情期间回乡人员管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

「运维有小邓」如何更有效的避免密码攻击

在这表文章中,让我们一起了解密码在网络安全中的重要性,在我们的日常工作中,密码泄露事件是常发生的, 那今天我们就一起了解ManageEngine ADSelfService Plus 是如何强化您的密码并加强您的企业AD域安全性的。 运维有小邓 2022 年…

ArcGIS绘制地球

下面这个图是非常不错的,截取自论文的一张图: 学了十几年地理学,最初的兴趣恐怕还是小时候常常摆弄的地球仪;现在终于有机会尝试地球仪风格制作了。 虽然迟到了十几年,不过今天还是有机会“复现”小时候的地球仪。 先…

计算机网络协议------从入门到深化

计算机网络通信 什么是通信协议 简单来说,通信协议就是计算机之间通过网络实现通信时事先达成 的一种“约定”;这种“约定”使那些由不同厂商的设备,不同CPU及不 同操作系统组成的计算机之间,只要遵循相同的协议就可以实现通 信。…