Linux网络编程:三次握手 四次挥手

news2024/11/24 10:00:39

1. 三次握手

建立TCP可靠连接,只能是客户端先发起。

 

(1)SYN标志位为1,表示请求建立连接;ACK标志位为1,表示确认收到对方报文。

(2)seq为数据包序列号,ack为确认序列号。

(3)ack确认序列号含义:

                a)确认收到对方报文;

                b)希望收到的下一个数据包的序列号。

                c)ack确认序列号 = 收到对方的seq序列号 + 1(即SYN标志位长度) + 0(数据长度,三次握手中未携带数据)

为什么是三次握手,而不是两次?

(1)第一次、第二次握手,能保证客户端知晓自己能否正常发数据、服务器能否收数据,即客户端到服务器的连通性;第三次握手能够保证服务器知晓自己能否正常发数据,客户端能否收数据,即服务器到客户端的连通性。三次握手保证了TCP双向的可靠传输;

(2)若为两次握手,假设这样一种场景:客户端第一次请求连接服务器,由于网络拥塞、延迟等原因,该请求迟迟未到达服务器;客户端又发送一次连接请求,这一次建立成功并传输完数据断开连接,此时第一次连接请求到达了,建立了无效连接。


2. 四次挥手

关闭TCP连接,任何一方都可先发起。

FIN标志位为1,表示请求断开连接。

第一次:

        主动方发送FIN = 1报文,表示主动方关闭连接,不再发送数据,但还可以接收数据。

第二次:

        被动方收到主动方报文后,回复ACK = 1报文,表示收到关闭请求。

第三次:

        被动方发送FIN = 1,表示被动方也关闭连接,不会再发送数据。

第四次:

        主动方收到被动方报文后,回复ACK = 1。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机视觉的应用4-目标检测任务:利用Faster R-cnn+Resnet50+FPN模型对目标进行预测

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用4-目标检测任务,利用Faster RcnnResnet50FPN模型对目标进行预测,目标检测是计算机视觉三大任务中应用较为广泛的,Faster R-CNN 是一个著名的目标检测网络&#x…

or-tools 应用案例分析:复杂作业车间调度问题

作业调度问题是常见的线性规划(整数规划)问题,其中多个作业在多台机器上处理。每个作业由一系列任务组成,这些任务必须按给定的顺序执行,并且每个任务都必须在特定的机器上处理。如何有效的利用所有的机器在最短的时间内完成所有的作业任务&a…

神经形态处理和自搜索存储如何降低联邦机构的网络风险

组织在边缘处理的信息量呈爆炸式增长。对于联邦机构和军队来说尤其如此,它们从设备、建筑物、船舶、飞机等中的移动设备和传感器生成大量数据。 寻找有效的方法来管理、使用和保护这些数据具有挑战性。但是有一个有效且具有成本效益的解决方案。神经形态处理和自搜…

c#笔记-数组

数组 声明数组 数组是一种可以声明多个同类型变量的数据结构,能替你声明多个变量。 并且其中的值可以通过索引动态访问,可以搭配循环批量处理这些值。 数组类型的写法是,在目标类型后加上一对中括号。 数组值没有字面量,需要构…

海天注塑机KEBA系统数据采集

本文章只针对海天注塑机的KEBA系统,因为其他注塑机厂家也用KEBA系统,他们的采集方式可能不太一样,所以后续有时间我将写其他文章来解释(默认你已经向海天采购了OPC组件)。 一、采集原理 采集软件(OPC cli…

electron+vue3全家桶+vite项目搭建【18】electron新建窗口时传递参数【url版】

文章目录 引入实现效果展示实现思路实现步骤1.调整主进程新建窗口的handle2.调整新建窗口函数3.封装url获取请求参数的工具 测试代码 引入 electronvue的项目中,我们通过传入页面路由来展开新的页面,就像vue-router的路由传参一样,我们可以利…

排序算法 — 桶排序

文章目录 桶排序介绍桶排序实现桶排序复杂度和稳定性桶排序复杂度桶排序稳定性 代码实现核心&总结 桶排序介绍 假设待排序的数组a中共有N个整数,并且已知数组a中数据的范围[0, MAX)。在桶排序时,创建容量为MAX的桶数组r,并将桶数组元素都…

【AUTOSAR】【通信安全】E2E

目录 一、概述 二、约束和假设 三、依赖模块 四、功能描述 4.1 开发错误 4.1.1 运行时错误 五、API接口 5.1 E2E Profile 接口 5.2 E2E其他接口 一、概述 该文档制定了PRS E2E协议的平台特定实现要求。这包括所使用的接口和数据类型。 E2E保护的概念假设在运行时应对…

探讨Redis缓存问题及解决方案:缓存穿透、缓存击穿、缓存雪崩与缓存预热(如何解决Redis缓存中的常见问题并提高应用性能)

Redis是一种非常流行的开源缓存系统,用于缓存数据以提高应用程序性能。但是,如果我们不注意一些缓存问题,Redis也可能会导致一些性能问题。在本文中,我们将探讨Redis中的一些常见缓存问题,并提供解决方案。 一、缓存穿…

云计算中的边缘计算技术及其应用

章节一:云计算和边缘计算的简介 随着互联网的发展,数据中心的规模不断扩大,云计算也成为了越来越受欢迎的计算模式。但是,云计算存在着一些问题,比如延迟较高,网络瓶颈,数据隐私和安全性等等。…

Canny边缘检测算法

文章目录 前言1、Canny边缘检测算法2、代码1函数 3、代码24、基于tensor数据的代码 前言 最近在向卷积神经网络里的数据预处理和数据增强部分加这个函数,记录一下。 1、Canny边缘检测算法 Canny边缘检测算法是一种经典的边缘检测算法,其基本原理如下&a…

榜单!直接式TPMS前装搭载率突破60%,哪些厂商在领跑

2016年,《乘用车轮胎气压监测系统的性能要求和试验方法》通过强制性国家标准技术审查;根据规定,自2020年1月1日起,所有中国市场在产乘用车将开始实施强制安装TPMS(胎压监测系统)的要求。 目前,…

vue项目前端解决跨域问题

在前后端分离项目中,跨域是一定会出现的问题,本文主要介绍跨域问题的解决思路,以及在vue项目中如何使用代理的方式在前端解决跨域问题,同时提供一个后段解决的方案。 1、产生原因 跨域问题产生的原因是浏览器的同源策略。浏览器同…

哪款蓝牙耳机便宜又好用?2023公认质量最好的蓝牙耳机推荐

哪款蓝牙耳机便宜又好用?现如今,市面上的蓝牙耳机越来越多,在选择增多的同时也有着不小的困惑,不知道哪款好用。针对这个问题,我来给大家推荐几款质量最好的蓝牙耳机,一起来看看吧。 一、南卡小音舱Lite2蓝…

安装kali虚拟机

1:kali是什么? kali 是由 Offensive Security 公司开发和维护的。它在安全领域是一家知名的、值得信赖的公司它甚至还有一些受人尊敬的认证,来对安全从业人员做资格认证。Kali 也是一个简便的安全解决方案。Kali 并不要求你自己去维护一个 Linux 系统&…

u盘中病毒文件被隐藏怎么恢复?看看这三种方法

U盘是我们日常生活中常用的存储设备,但是如果U盘被病毒感染,可能会导致文件被隐藏或丢失。被病毒隐藏的U盘文件给我们的生活、工作带来了很大的麻烦,因此必须马上采取行动来恢复这些文件。 而解决“u盘文件被病毒隐藏如何恢复正常”的问题原来…

SpringBoot【运维实用篇】---- 日志

SpringBoot【运维实用篇】---- 日志 1. 代码中使用日志工具记录日志教你一招:优化日志对象创建代码 2. 日志输出格式控制3. 日志文件 运维篇最后一部分我们来聊聊日志,日志大家不陌生,简单介绍一下。日志其实就是记录程序日常运行的信息&…

网络安全是一个好的专业吗?

近年我国《网络安全法》政策持续落地,前段时间国家工信部出台意见,加强数据安全、网络安全、功能安全等管理、智能网联汽车安全是关键。针对上次滴滴安全安全审查一事当中,国家网信办强调企业无论在哪上市必须确保国家网络安全安全及关键信息…

UFC718AE01 HIEE300936R0101什么是 ABB 分布式控制系统?

​ UFC718AE01 HIEE300936R0101什么是 ABB 分布式控制系统? 关于 ABB 类别 什么是 ABB 分布式控制系统? ABB 的分布式控制系统 (DCS) 旨在改变多方面、全天候 24 小时的工业流程。ABB 的控制架构持续分析和推动工厂生产力,最大限度地提高资产…

Mysql数据库的存储引擎——必看教程

目录 一、什么是存储引擎 二、MySQL支持的存储引擎 三、常见的存储引擎 1.InnoDB存储引擎 2.MyISAM存储引擎 3.MEMORY存储引擎 四、选择存储引擎 总结 ✨✨✨大家好,我是会飞的鱼-blog,今天我来给大家介绍一下Mysql,有不足之处&#xf…