计网入门还没到放弃

news2024/11/15 20:01:12

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握手建立。

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

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

相关文章

lvm,磁盘配额

文章目录 LVM概述Logical Volume Manager逻辑卷管理LVM机制的基本概念 LVM的管理命令LVM应用实例案例环境需求描述创建 LVM创建, 删除LVM 流程创建 LVM 流程删除 LVM 流程 磁盘配额概述实现磁盘限额的条件Linux 磁盘限额的特点 磁盘配额管理CentOS7设置磁盘配额步骤编辑用户和组…

61.指针和二维数组(1)

目录 一.回顾 二.思考 三.实验验证 四.视频教程 一.回顾 在一维数组中,一维数组的数组名就是一维数组中首个元素的地址。若有int a[5];int *p;则p&a[0]可以简写成pa; 在C语言中,二维数组如int a[2][2]{1,2,3,4…

英语口语练习评测的开发实现

英语口语评测是一个复杂的系统,需要综合考虑语音识别、语音评测、自然语言处理等多种技术。以下是一些常见的英语口语评测开发框架。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 基于语音识别的口语评测框架这种框架主要…

Python | Leetcode Python题解之第189题轮转数组

题目&#xff1a; 题解&#xff1a; def reverse(nums: List[int], left, right) -> None:i, j left, rightwhile i < j:nums[i], nums[j] nums[j], nums[i]i1j-1 class Solution:def rotate(self, nums: List[int], k: int) -> None:n len(nums)k % nreverse(num…

运行时库链接方式实践指南(MT、MD、MTd、MDd)

前言 笔者曾经编译一个库提供给使用者&#xff0c;提供库后发现由于运行时库连接方式不一致&#xff0c;导致使用者无法连接笔者提供的库。另一方面&#xff0c;理解和选择正确的运行时链接方式对于构建高效、可靠的应用程序至关重要。 因此&#xff0c;本文将展开运行时库的基…

web前端课程设计——农产品购物车

该课程设计使用的环境为:HTMLcssJavaScript,vue3,creat-vue脚手架工具&#xff0c;vscode编辑器 其中实现的功能为:购物车管理&#xff0c;商品展示。 1.购物车管理中包含对商品数量进行加减&#xff0c;对商品进行全选或反选操作&#xff0c;删除单个商品或批量删除商品。 …

C++ | Leetcode C++题解之第189题轮转数组

题目&#xff1a; 题解&#xff1a; class Solution { public:void reverse(vector<int>& nums, int start, int end) {while (start < end) {swap(nums[start], nums[end]);start 1;end - 1;}}void rotate(vector<int>& nums, int k) {k % nums.size…

Android AOSP 编译并烧录到Google Pixel4XL

简介 AOSP&#xff08;Android Open Source Project&#xff09;是Android系统的开源版本&#xff0c;任何人都可以下载、编译和修改。手头上有一台Pixel 4XL&#xff0c;尝试编译AOSP并将其烧录到的设备上。 准备工作 在开始之前&#xff0c;您需要确保您的电脑满足以下条件…

文旅景区科技馆增加5D影院项目VR游乐场

王屋山风景名胜区增加20座5D影院设备&#xff0c;5D影院不像普通电影院&#xff0c;5D影院座椅可以根据影片播放内容&#xff0c;进行实时摆动和各种特效&#xff0c;闪电&#xff0c;振臀振臂&#xff0c;泡泡等个种特效。影片内容可以进行定制&#xff0c;根据景区文化风光&a…

OnlyOffice-8.1版本深度测评

2024年6月19日&#xff0c;ONLYOFFICE 发布了最新版本 8.1&#xff0c;带来了超过30项新功能和432个 bug 修复。本文将详细评测该版本的新功能和改进&#xff0c;帮助用户全面了解这一升级带来的实际体验提升。 一、功能全面的 PDF 编辑器 PDF 是日常工作中不可或缺的文件格式…

Waiting for table flush故障处理

故障排查 1 找到正处于open状态的表 show open tables where in_use >1; 2 找到引发故障的慢查询 ① 找到阻塞flush tables的慢查询 SELECT * FROM information_schema.PROCESSLIST WHERE info IS NOT NULL AND state NOT LIKE ‘Waiting for table flush’ AND info …

CentOS7.6安装RabbitMQ

前言&#xff1a;因为RabbitMQ是ERlang语言编写所以要先安装ERlang再安装RabbitMQ 安装ERlang 借鉴前辈原文地址&#xff1a;https://www.cnblogs.com/fengyumeng/p/11133924.html 第一步&#xff1a;安装依赖 yum -y install gcc glibc-devel make ncurses-devel open…

Linux-CentOs7 基础配置

目录 一、安装ifconfig二、配置静态IP 一、安装ifconfig 查找ifconfig存在哪个包下 yum search ifconfig下载对应的资源包 yum install net-tools.x86_64检查是否安装成功 ifconfig二、配置静态IP 点击编辑 — 虚拟网络编辑器&#xff0c;选择VMnet8&#xff0c;点击NET设置&am…

【C++题解】1711. 输出满足条件的整数1

问题&#xff1a;1711. 输出满足条件的整数1 类型&#xff1a;简单循环 题目描述&#xff1a; 有这样的两位数&#xff0c;其十位上的数字比个位上的数字要大&#xff0c;且十位和个位上的数字之和为偶数&#xff0c;请找出所有的满足条件的 2 位数。 输入&#xff1a; 无。…

Hive基础知识(十九):Hive 自定义函数

1. 自定义函数 1&#xff09;Hive 自带了一些函数&#xff0c;比如&#xff1a;max/min 等&#xff0c;但是数量有限&#xff0c;自己可以通过自定义 UDF 来方便的扩展。 2&#xff09;当 Hive 提供的内置函数无法满足你的业务处理需要时&#xff0c;此时就可以考虑使用用户自…

山寨币大额解锁抛压拖累比特币:10X Research 深度剖析市场动荡

加密货币市场大幅下跌&#xff0c;山寨币损失惨重 在经历了几个月的强劲表现后&#xff0c;加密货币市场最近经历了一轮大幅下跌&#xff0c;特别是山寨币损失惨重。10X Research 最近在其Newsletter中发表了观点&#xff0c;认为山寨币大额解锁所带来的抛压正在拖累比特币。本…

win11安装VMware虚拟机,启动系统后蓝屏,安装虚拟机卡在虚拟网卡界面的解决办法

机缘和遇到的问题 由于最近618换了台新笔记本电脑&#xff0c;然后系统自带的操作系统是windows 11 家庭版本&#xff0c;由于工作需要用到window10的环境&#xff0c;不得不安装一个虚拟机来解决问题&#xff0c;然后就把这次安装VMware虚拟机遇到的坑给大家分享一下&#xf…

AI视频模型Sora核心功能以及应用场景

随着人工智能技术的飞速发展&#xff0c;AI在视频处理和生成领域的应用正变得越来越广泛。Sora&#xff0c;作为新一代AI视频模型&#xff0c;展示了前所未有的潜力和创新能力。本文将深入探讨Sora的功能、应用场景以及它所带来的革命性变化。 一、Sora的核心功能 1.1 视频生…

cpu scheduling cpu调度

soft real-time Vs hard real-time scheduling Real-Time CPU Scheduling Can present obvious challengesSoft real-time systems – Critical real-time tasks have the highest priority, but no guarantee as to when tasks will be scheduledHard real-time systems – …

ONLYOFFICE 桌面编辑器 8.1 发布:全新 PDF 编辑器、幻灯片版式、增强 RTL 支持及更多本地化选项

目录 什么是ONLYOFFICE&#xff1f; ONLYOFFICE 主要特点包括&#xff1a; 官网信息&#xff1a; 1. 功能齐全的 PDF 编辑器 1.1 编辑 PDF 文本 1.2 插入和修改对象 1.3 创建和填写表单 2. 幻灯片版式功能 2.1 快速应用幻灯片版式 2.2 动画窗格的改进 3. 文档编辑、…