DAY5.

握手:

第一次握手:客户端发送SYN包给服务器,并进入SYN_SENT状态,等待服务器返回确认包。
第二次握手:服务器接收到SYN包,确认客户端的SYN,发送ACK包,同时发送一个SYN包,并进入SYN_RCVD状态。
第三次握手:客户端接收到服务器的SYN包,以及ACK包,进入establish状态,同时向服务器发送ACK包。此时三次握手包发送完毕,服务器也进入establish状态。。

挥手:

第一次挥手,主动关闭方发送一个FIN包给被动方,进入FIN_WAIT_1状态;
第二次挥手:被动方接收到FIN包,给主动方发送一个ACK包;并进入CLOKSE_WAIT状态。主动方接受到ACK包后,进入FIN_WAIT_2状态。如果有数据没有发送完毕,则继续发送,直到发送完毕为止;
第三次挥手:被动方发送一个FIN包,进入LAST_ACK状态.
第四次挥手:主动关闭方收到FIN包,回复一个ACK包。被动关闭方收到主动关闭方的ACK后关闭连接。

TCP与UDP区别

TCP:

1、提供面向连接的,可靠的数据传输服

2、传输过程中,数据无误,数据无丢失、数据无失序、数据无重复;

3、数据传输效率低,耗费的资源多;

4、数据收发不同步,会存在沾包算法,为了提高效率,TCP会将多个较小,并且发送间隔短的数据包,沾成一个包发送,该现象称为沾包现象;

5、TCP使用场景:对传输质量比较高的以及传输大量数据的通信,在需要可靠通信的传输场合,一般使用TCP协议,例如:账号登录,大型文件下载的时候;

UDP:

1、面向无连接的,不保证数据可靠的,尽最大努力传输的协议;

2、数据传输过程中,可能会出现数据丢失、重复、失序现象;

3、数据传输效率高,实时性高;

4、限制每次传输数据的大小,多出部分直接忽略删除;

 5、收发是同步的,不会沾包;

 6、适用场景:发送小尺寸的,在接收到数据给出应答比较困难的情况。

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

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

相关文章

JVM相关-JVM模型、垃圾回收、JVM调优

一、JVM模型 JVM内部体型划分 JVM的内部体系结构分为三部分,分别是:类加载器(ClassLoader)子系统、运行时数据区(内存)和执行引擎 1、类加载器 概念 每个JVM都有一个类加载器子系统(class l…

Linux系统调试课:ftrace跟踪器介绍

文章目录 一、什么是frace跟踪器?二、Ftrace 配置三、Ftrace 文件系统四、Ftrace 初体验五、函数跟踪六、Ftrace function_graph七、函数 Profiler沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是frace跟踪器? 操作系统内核对应用开发工程师来说就像一个黑盒,…

Bootstrap5 导航组件和面包屑

Bootstrap5 导航组件和面包屑 Bootstrap5 提供了一种简单快捷的方法来创建基本导航,它提供了非常灵活和优雅的选项卡和Pills等组件。 Bootstrap5 的所有导航组件,包括选项卡和Pills,都通过基本的 .nav 类共享相同的基本标记和样式。 使用 B…

使用Volo.Abp读取Sqlite表中数据

书接上文:Abp 从空白的WebApplication中添加EntityFrameworkCore生成数据库 开发环境:.NET6、Volo.Abp 数据库:Sqlite 说明:纯属个人强行入门。我个人觉得按照官网的操作不舒服,所以自己研究着来,请读者…

零基础学编程从哪里入手,编程实例分享,配件进出库管理系统软件

零基础学编程从哪里入手,编程实例分享,配件进出库管理系统软件 一、前言 对于刚学编程的人来说,多看看现有的软件实例对自己学开发软件是很有帮助的。 下面分享的实例以配件进出库管理系统软件为例说明。 软件文件下载可以点击最下方官网…

java SpringBoot2.7整合Elasticsearch(ES)7 进行文档增删查改

首先 我们在 ES中加一个 books 索引 且带有IK分词器的索引 首先 pom.xml导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>applicatio…

【Scala】1. 变量和数据类型

1. 变量和数据类型 1.1 for begining —— hello world 新建hello.scala文件&#xff0c;注意object名字与文件名一致。 object hello { def main(args:Array[String]): Unit { println("hello world!") } }运行后打印结果如下&#xff1a; hello world!Pr…

人工智能(pytorch)搭建模型24-SKAttention注意力机制模型的搭建与应用场景

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能(pytorch)搭建模型24-SKAttention注意力机制模型的搭建与应用场景&#xff0c;本文将介绍关于SKAttention注意力机制模型的搭建&#xff0c;SKAttention机制具有灵活性和通用性&#xff0c;可应用于计算机视…

机器学习-梯度下降法

不是一个机器学习算法是一种基于搜索的最优化方法作用&#xff1a;最小化一个损失函数梯度上升法&#xff1a;最大化一个效用函数 并不是所有函数都有唯一的极值点 解决方法&#xff1a; 多次运行&#xff0c;随机化初始点梯度下降法的初始点也是一个超参数 代码演示 impor…

C# OpenCvSharp DNN 部署yolov4目标检测

目录 效果 项目 代码 下载 效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Windows.Forms;namespace OpenCvSharp_DNN_Demo {publ…

Mysql进阶(锁)

一、锁概述 两个事务的写操作之间的互相影响。隔离性要求同一时刻只能有一个事务对数据进行写操作&#xff0c;InnoDB通过锁机制来保证这一点。 锁机制基本原理&#xff1a; 事务在修改数据之前&#xff0c;需要先获得相应的锁&#xff1b;获得锁之后&#xff0c;事务便可以…