计网入门还没到放弃

TCP报文段格式

在这里插入图片描述
源端口:标识报文的返回地址
目的端口:指明计算机上的应用程序接口
序号:通过SYN包传给接收端主机,每传送一次就+1,用来解决网络包乱序的问题。
确认号:期望下一次收到的数据的序列号,可以默认这个序号之前的数据都已经收到,防止了丢包的问题。
数据偏移:也称为首部长度,首部长度实际上知识了数据区在报文段中的其实偏移量。
检验和:由发送端填充,在接收端对报文段使用CRC算法以检验TCP报文段是否出现损坏,不仅对TCP头部进行校验,同样也要对数据部分进行校验,这是TCP保证安全性的一个重要保障。

TCP三次握手过程

在这里插入图片描述

第一次握手:客户端 -> 服务端 发送SYN报文,包括seq
第二次握手:服务端 -> 客户端 发送SYN+ACK报文,包括seq+1,ack,客户端建立连接
第三次握手:客户端 -> 服务端 发送ACK报文,包括ack+1,服务端建立连接

为什么必须要三次握手

  1. 避免历史连接初始化连接

    在网络拥堵的情况下,第一次握手客户端发送的SYN报文,可能服务器宕机没有收到。
    在重启客户端的时候,会重新发送SYN报文,同时这个过程会重复很多次,就会有很多历史连接。
    那么如果是两次握手,那么服务端在接收到SYN报文的时候,就会建立连接。
    但是返回的SYN+ACK报文也会有很多,这时客户端对比了很多的SYN+ACK报文,比如有n个SYN+ACK报文,那么客户端就会发送n-1个RST报文去让进服务端断开连接,只有最后一个是ACK报文。
    这样,服务端就会建立很多次链接,浪费资源。

  2. 三次握手才可以同步双方的初始化序列号

  3. 避免浪费资源

第一次握手丢失的结果

第一次握手丢失,客户端就会一直重发,在重发一定次数之后就会关闭连接。

第二次握手失败的结果

第二次握手丢失,
首先会重发第一次握手,等待一段时间后关闭。
服务端也会一直重发,一定时间内客户端没有收到ACK报文就会断开连接,服务端在重发一定次数后也会断开连接。

第三次握手失败的结果

第三次握手丢失,服务器会重发一定设置次数的ACK+SNY报文,在等待一定时间后,如果没有收到对应的ACK报文,那么就断开连接。ACK报文没有重发机制。

四次挥手

在这里插入图片描述

第一次挥手:客户端 -> 服务端,发送FIN报文,表示想要断开连接,客户端进入FIN_WAIT1状态。
第二次挥手:服务端 -> 客户端,发送ack报文,服务端进入closed_wait状态。
第三次挥手:服务端 -> 客户端,发送FIN报文,客户端接收到ack报文后进入FIN_WAIT2状态,服务端处理完数据后,发送FIN报文,进入LAST_ACK状态。
第四次挥手:客户端 -> 服务端,发送ack报文,客户端接收到FIN报文后进入TIME_WAIT状态,向服务端发送ack报文,服务端接收到ack报文后关闭连接。客户端在经过2MSL时间后关闭连接。

为什么需要四次挥手

第一次挥手,客户端向服务端发送FIN报文,发送FIN报文表示不在发送数据,但是还能接受数据。
第二次挥手,服务端向客户端发送ACK报文,表示同意断开连接。但是可能我还需要发送一些数据。
第三次挥手,服务端发送完数据,向客户端发送FIN报文请求断开连接。
第四次挥手,客户端向服务端发送ACK报文,同意服务端断开连接,服务端接收到ACK报文后,断开连接。

由上述过程可知,服务端需要完成数据的发送会,才会断开连接,所有FIN和ACK一般会分开发送

第一次挥手丢失的结果

会一直重发,一定时间间隔后如果还没有收到第二次挥手就会自动断开连接。

第二次挥手丢失的结果

会一直重发第一次挥手,一段时间后会断开连接。

第三次挥手丢失的结果

如果第三次挥手丢失,如果使用shutdown()关闭连接,那么会一直等待。
如果使用close()关闭连接,那么会等待一段时间后关闭连接。

第四次挥手丢失的结果

会一直重发第三次挥手,一段时间后断开连接。

HTTP协议的特点

HTTP是应用层协议,是基于TCP的可靠协议,是灵活可拓展的,是无状态的。

HTTP报文格式?怎么分割的?

在这里插入图片描述
由请求行、请求头、请求体组成
请求行包括请求方法、URL、HTTP版本号
请求头中包含key-value形式的数据,去说明报文。
请求体中包含需要发送的内容。
他们的分割使用\r\n的方式进行。

HTTP有什么方法?

GET方法:应该只用在查询方法上
POST方法:新增和修改操作
PUT方法:更新操作
DELETE方法:删除操作
HEAD方法:和GET方法类似。

幂等的请求方法,实际上一定幂等吗?

不一定,假如幂等的GET方法,实际上也可以定义一些更新数据的操作,这样就可能不幂等。
要保证幂等,必须按照方法的规定进行才可以。

HTTP状态码

101:请求者要求切换协议
200:成功状态码
204:也表示成功,但是请求体中没有数据。
206:也表示成功,但是请求体中的数据不是全部数据,是断点续传的基础。
301:代表永久性的重定向
303:临时重定向
304:缓存读取
400:请求报文有错误
403:请求资源的权限不够
404:代表服务器上没有该资源
500:服务器程序错误
501:服务器不具有完成请求的功能
502:表示后端服务器发生错误
503:服务器忙
504:请求超时

HTTP1.1和HTTP2的区别

最重要的区别是,可以并发传输
HTTP2进行了头部压缩、二进制格式
还支持服务器主动推送资源

HTTP3和2的区别

HTTP2.0需要TCP三次握手和TLS四次握手,而HTTP3.0的QUIC协议通过三次握手,就可以完成TCP三次握手和TLS握手建立。

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

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

相关文章

WMS可以为制造企业解决什么问题?

在快速变化、高度竞争的制造业环境中,仓库不仅是储存物料的地方,更是企业运营的“心脏”。然而,随着业务的扩展和产品种类的增多,仓库管理变得越来越复杂,传统的管理方式已经难以满足现代企业的需求。这时,…

舆论中心的《黑神话:悟空》:人们总希望,这只猴子能打破些什么

距离《黑神话:悟空》上线还有60天。外界关于游戏的争议有很多,但游戏科学却很少出来回应什么。 6月9日,博主兲虎发文称,《黑神话:悟空》之所以在发布宣传视频后,一直遭受到所谓性别歧视的攻击与污蔑&#…

Java项目毕业设计:基于springboot+vue的幼儿园管理系统

数据库:MYSQL5.7 **应用服务:Tomcat7/Tomcat8 使用框架springbootvue** 项目介绍 管理员;首页、个人中心、用户管理、教师管理、幼儿信息管理、班级信息管理、工作日志管理、会议记录管理、待办事项管理、职工考核管理、请假信息管理、缴费信息管理、幼儿请假管理…

企业运维六边形战士 质量稳定 效率为王

随着信息化的不断深入和扩展,企业IT系统的复杂性和设备多样性日益增加。为了保障业务的高可用性和连续性,企业需要一个全面、高效、智能的一体化运维管理平台。在用户市场的推动下,LinkSLA智能运维管家展现出【六边形战士】的优质属性&#x…

金融科技在智能投研领域的应用与前景

随着科技的飞速发展,金融科技(FinTech)正逐步渗透到金融行业的各个细分领域,其中智能投研领域作为金融科技的重要应用之一,正展现出巨大的潜力和广阔的前景。智能投研利用大数据、人工智能(AI)等…

中学政史地杂志中学政史地杂志社中学政史地编辑部2024年第4期目录

每月时政 时政要闻(2024年3月) 李伟; 3-4 热点聚焦 全面加强基础设施建设,积极扩大有效投资 刘华; 5-7《中学生政史地》投稿:cn7kantougao163.com 蒙古国努力应对冰雪灾害 张仁杰; 8-10 复习指导 高中政治经济全球化内容复习…

用友 U8 应收科目设置

知识点:应收科目设置 问题描述:应收款管理-设置-科目设置下的基本科目、控制科目、对方科目及结算科目如何使用? 解决方案: 1、 基本科目 在基本科目中可以定义应收系统凭证制单所需要的基本科目:应收科目、预收科…

费控4.0全面解决方案从源头破解企业费用管理痛点

随着企业数字化变革的加速,费控报销正处于最具有发展潜力的细分赛道,且无疑是具有 “长坡厚雪”属性的投资标的。但回归企业管理视角,作为一个用于企业非生产性费用管理的管理工具,费控报销平台的评判标准只有两个:好不…

2024软件设计师笔记之考点版(一考就过):1-10

软件设计师之一考就过:成绩版 考点1:CPU、指令 真题1:CPU 执行算术运算或逻辑运算时,常将源操作数和结果暂存在(累加器(AC))中。 真题2:在程序的执行过程中,Cache与主存的地址映射是由(硬件自动)完成的。 真题3:计算机执行程序时,内存分为静态数据区、代码区、…

GD32 MCU的选项字节是什么?

GD32 MCU的选项字节是什么,有什么功能呢?选项字节被误篡改如何回复? 读者朋友们是否会有以上的疑问,首先我们先为大家介绍选项字节是什么以及选项字节的功能。 以GD32F30X系列MCU为例,其选项字节说明如下表所示&…

数据结构需要每个都具体实现吗?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「数据结构的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!用c的stl能刷算法题是不…

第3章 小功能大用处-事务与Lua

为了保证多条命令组合的原子性,Redis提供了简单的事务功能以及集成Lua脚本来解决这个问题。 首先简单介绍Redis中事务的使用方法以及它的局限性,之后重点介绍Lua语言的基本使用方法,以及如何将Redis和Lua脚本进行集成,最后给出Red…

HarmonyOS应用开发——Hello World

下载 HUAWEI DevEco Studio: https://developer.harmonyos.com/cn/develop/deveco-studio/#download 同意,进入配置页面: 配置下载源以及本地存放路径,包括nodejs和ohpm: 配置鸿蒙SDK路径: 接受协议: 确认无误后&#…

SpringBoot异常处理

一、自定义错误页面 SpringBoot默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制。一旦程序中出现了异常 SpringBoot 会向/error 的 url 发送请求。在 springBoot 中提供了一个叫 BasicErrorController 来处理/error 请求,然后跳转…

C++11基础

一、C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了 C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中的漏洞 进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合…

docker常见问题-持续更新

docker 启动的问题解决 解决: 下载更新linux的win子系统, 重启就可以 WSL 2 installation is incomplete. 更加报错提示,猜测可能是我们使用的wsl2版本老了,需要我们自己手动更新一下,我们根据提示去微软官网下载最新版的wsl2安装后即可正常打开。更新包下载链接。 https://ws…

安达发|生产计划排产软件推动制造业的高质量发展

在全球经济一体化的大背景下,制造业正面临着前所未有的挑战与机遇。随着智能化技术的不断进步,生产计划排产软件作为推动制造业高质量发展的重要工具,已经成为行业转型升级的关键。 制造业作为国民经济的重要支柱,其发展水平直接关…

cad转换pdf怎么转换?介绍四个转换方法

cad转换pdf怎么转换?在数字化办公日益盛行的今天,CAD图纸的转换与处理成为许多专业人士不可或缺的技能。特别是在需要将CAD图纸转换为PDF格式时,一款功能强大的软件能够大大提高工作效率。今天,就为大家推荐四款CAD转PDF的神器&am…

项目管理人如何高效进行年中汇报?

2024年已经过了一半,很多公司都把年中汇报提上了日程,项目管理人们又要焦头烂额了,毕竟手上项目一堆,平时大小汇报不断,天天都在加班整理各种数据。 不仅是项目经理们感觉压力山大、PMO以及各部门经理们也需要整理上半…

详解 ClickHouse 的副本机制

一、简介 副本功能只支持 MergeTree Family 的表引擎,参考文档:https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/ ClickHouse 副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机&#…