当前位置: 首页 > news >正文

计算机网络基础知识1

1、tcp三次握手?
SYN,标志位,用于建立TCP连接的握手过程中的标志位。
ACK,确认位,用于说明整个包是确认报文。
TCP/IP协议是传输层的一个面向连接提供可靠安全的传输协议。第一次握手有客户端发起,客户端向服务端发送一个报文,在报文里面,将SYN置为1,随机生成一个序列号x,当服务端收到这个报文后指导客户端要和我建立一个tcp连接,于是向客户端发送一个确认包,报文里面设置,SYN=1,ACK=1,ack=x+1,再随机生成一个序列号sep=y。基于上面两次握手,作为客户端我知道自己能发送消息和接收消息,对于服务端我可以收到消息,客户端能不能收到我发的消息我不知道,于是需要三次握手,第三次报文就是当客户端收到服务端发送的确认响应报文之后,还要继续给服务端进行回应,报文内容:seq=y+1,ACK=1,经过三次握手之后,这个连接就被安全的建立了。
2、四次挥手?
有客户端首先发起,第一次挥手客户端发送一个报文,在报文里面将FIN=1,根据之前发送报文生成的序列号这里将seq=x,当服务端收到这个报文后就知道了客户端想断开连接,但是此事服务端可能在发送数据导致不能立刻断开连接,服务端需要继续发送数据,服务端只进行一次消息queren(第二次挥手)报文内容ACK=1,ack=x+1,即告诉客户端我知道你要和我断开连接,但我没做好准备,你需要等我消息。服务端没有消息发送时,给客户端发送一个报文(第三次挥手),报文内容:seq=y,FIN=1。当这个报文到达客户端时,客户端需要给服务端发送一个消息确认报文(第四次挥手),报文内容:ACK=1,ack=y+1,经过四次挥手,双方都准备好了断开连接的准备,由此TCP/IP断开连接。
3、http和https的区别?
http是超文本传输协议,信息是明文传输,存在安全风险隐患,https在tcp和http的网络层加入了SSL/TLS安全协议,使得报文能够加密传输。
TCP三次握手之后就能进行HTTP的报文传输,而HTTPS在TCP三次握手之后,还需要进行SSL/TLS的握手过程,才可进行加密的报文传输。
HTTP的默认端口是80,HTTPS的默认端口上443。
HTTPS协议需要向CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的,一般需要收费。
4、加密算法有哪些?
对称加密:加密和解密采用相同的密钥,是可逆的。例如:AES、DES
优点:加密速度快。
缺点:密钥容易泄露。
非对称加密:加密和解密的密钥是不一样的,使用公钥加密私钥解密。例如:RSA、DSA。
RSA:将两个大数相乘很容易,但是想要对乘积进行因式分解很难,可以将其乘积公开作为加密密钥。
优点:安全性高。
缺点:速度慢。
5、输入URL后的一系列变化?
a、首先进行DNS域名解析,得到域名对应的IP地址;
b、浏览器与服务器建立TCP连接;
c、向服务器发送请求;
d、服务器处理请求,并返回响应;
e、浏览器根据响应进行页面渲染;
f、浏览器端开和服务器的连接。
6、POST请求和GET请求的区别?
a、post请求是向服务器发送数据,get请求是向服务器请求数据;
b、get请求传输数据是通过url传输的,参数拼接在url地址栏上,post请求将字段和对应的值保存在请求体中,对用户是可不见的;
c、get请求传输数据量是有限的,因为url的长度是有限的,post请求可以传输大量数据;
d、get请求只能支持ascii,向服务器传输中文会出现乱码现象,中文要经过特殊处理比如经过url编码转换为16进制,post请求可以支持标准字符集;
e、get请求不安全,url可见,容易被cache缓存,还会被保存在浏览器记录中,post请求不会被cache缓存也不会出现在浏览器记录中。
7、拥塞控制的四个算法:
慢启动、拥塞避免、用色发生、快速恢复
慢启动:指数增长;
拥塞避免:当拥塞窗口cwnd超过慢启动门限ssthresh,就会进入拥塞避免;
超时重传:ssthresh=cwnd/2,cwnd=1,在执行慢启动;
快重传:收到三个ACK确认包,发送端就进行快重传。cwnd=cwnd/2,ssthresh=cwnd,然后进入快恢复;
快恢复:拥塞窗口cwnd=ssthresh+3(3个数据包已收到),直接进入到拥塞避免算法。
在这里插入图片描述

相关文章:

计算机网络基础知识1

1、tcp三次握手? SYN,标志位,用于建立TCP连接的握手过程中的标志位。 ACK,确认位,用于说明整个包是确认报文。 TCP/IP协议是传输层的一个面向连接提供可靠安全的传输协议。第一次握手有客户端发起,客户端向…...

人机交互中的多/变尺度态势感知

人机交互是指在人与计算机之间进行信息交换和任务完成的过程中,通过各种界面和交互方式来实现人机之间的有效沟通和协作。多尺度上下文是人机交互中一个重要的概念,它指的是在不同层次或不同尺度的信息之间建立联系,以便更好地理解和处理信息…...

命名管道原理(和匿名管道的对比),mkfifo(命令行,函数),命名管道模拟实现代码+与多个子进程通信代码

目录 命名管道 引入 原理 和匿名管道的对比 使用 -- mkfifo 命令行指令 创建 文件类型p 使用 函数 函数原型 模拟实现 头文件 客户端代码 服务端代码 运行情况 模拟实现 -- 与多个子进程 介绍 服务端代码: 运行情况 命名管道 引入 匿名管道只能用于父子进程…...

pytest全局变量的使用

这里重新阐述下PageObject设计模式: PageObject设计模式是selenium自动化最成熟,最受欢迎的一种模式,这里用pytest同样适用 这里直接提供代码: 全局变量 conftest.py """ conftest.py 全局变量,主要实…...

FreeRTOS源码阅读笔记2--list.c

list.c中主要完成列表数据结构的操作,有列表和列表项的初始化、列表的插入和移除。 2.1列表初始化vListInitialise() 2.1.1函数原型 void vListInitialise( List_t * const pxList ) pxList:列表指针,指向要初始化的列表。 2.1.2函数框架…...

杂货铺 | citespace的使用

安装教程 【CiteSpace保姆级教程1】文献综述怎么写? 📚数据下载 1. 新建文件夹 2. 数据下载 知网高级检索 数据选中导出 :一次500 导出后重命名为download_xxx.txt,放到input文件里 3. 数据转换 把output里的数据复制到data里…...

C++ 静态成员变量初始化规则

每一天一个小trick!! 为什么静态成员不能在类内初始化? 在C中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。 class A { private: static int count …...

Docker安装、卸载,以及各种操作

docker是一个软件,是一个运行与linux和windows上的软件,用于创建、管理和编排容器;docker平台就是一个软件集装箱化平台,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xf…...

深入理解 C 语言的内存管理

文章目录 引言内存管理的重要性C语言内存布局C语言内存管理堆和栈内存的区别和用途内存分配和释放的过程C语言动态内存分配的概念和原因malloc()、calloc() 和 realloc() 等函数的使用悬挂指针和野指针内存泄漏和如何避免结论 引言 C语言是充满力量且灵活的编程语言&#xff0…...

利用Caddy实现http反向代理

利用Caddy实现http反向代理 1 Caddy是什么 Caddy是一个开源的,使用Golang编写的,支持HTTP/2的Web服务端。它的一个显著特征就是默认启用HTTPS。 和nginx类似。 2 多个后端服务 假如现在有3个后端http服务:分别在启动在 app1 http://10…...

【Qt之QVariant】使用

介绍 QVariant类类似于最常见的Qt数据类型的联合。由于C禁止联合类型包括具有非默认构造函数或析构函数的类型,大多数有趣的Qt类不能在联合中使用。如果没有QVariant,则QObject::property()和数据库操作等将会受到影响。 QVariant对象同时持有一个单一…...

xv6实验课程--xv6的写时复制fork(2023)

7. xv6实验课程--xv6的写时拷贝(COW)(2021) 7. xv6实验课程--xv6懒惰分页分配(lazy)(2020) 本文来源: https://mp.weixin.qq.com/s/XJkhjrlP232ZDsRyXd0oHQ 已完成的实验代码可以从下列网站获取: git clone https://gitee.com/lhwhit196…...

在Windows或Mac上安装并运行LLAMA2

LLAMA2在不同系统上运行的结果 LLAMA2 在windows 上运行的结果 LLAMA2 在Mac上运行的结果 安装Llama2的不同方法 方法一: 编译 llama.cpp 克隆 llama.cpp git clone https://github.com/ggerganov/llama.cpp.git 通过conda 创建或者venv. 下面是通过conda 创建…...

Spring底层原理学习笔记--第七讲--(初始化与销毁)

初始化与销毁 Spring提供了多种初始化和销毁手段它们的执行顺序 A07Application.java package com.lucifer.itheima.a07;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springfram…...

基于斑马算法的无人机航迹规划-附代码

基于斑马算法的无人机航迹规划 文章目录 基于斑马算法的无人机航迹规划1.斑马搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用斑马算法来优化无人机航迹规划。 1.斑马搜索算法 …...

干货 | 接口自动化测试分层设计与实践总结

接口测试三要素: 参数构造 发起请求,获取响应 校验结果 一、原始状态 当我们的用例没有进行分层设计的时候,只能算是一个“苗条式”的脚本。以一个后台创建商品活动的场景为例,大概流程是这样的(默认已经是登录状态下)&#…...

【Linux】服务器与磁盘补充知识,硬raid操作指南

服务器硬件 cpu 主板 内存 硬盘 网卡 电源 raid卡 风扇 远程管理卡 1.硬盘尺寸: 目前生产环境中主流的两种类型硬盘 3.5寸 和2.5寸硬盘 2.5寸硬盘可以通过使用硬盘托架后适用于3.5寸硬盘的服务器 但是3.5寸没法转换成2.5寸 2.如何在服务器上制作raid 华为服务器为例子做…...

【java】实现自定义注解校验——方法二

自定义注解校验的实现步骤: 1.创建注解类,编写校验注解,即类似NotEmpty注解 2.编写自定义校验的逻辑实体类,编写具体的校验逻辑。(这个类可以实现ConstraintValidator这个接口,让注解用来校验) 3.开启使用自定义注解进…...

算法通关村第六关|白银|二叉树的层次遍历【持续更新】

1.二叉树基本的层序遍历 仅仅遍历并输出全部元素。 List<Integer> simpleLevelOrder(TreeNode root) {if (root null) {return new ArrayList<Integer>();}List<Integer> res new ArrayList<Integer>();LinkedList<TreeNode> queue new Lin…...

vue中通过js控制scss变量

<!--* Description:* Author: 李大玄* Date: 2022-07-28 20:34:43* FilePath: /web-framework-demo/src/views/layout.vue* LastEditors: 李大玄* LastEditTime: 2022-11-01 09:25:31 --> <template><div height"100%" class"b"><inp…...

新手友好:基于快马平台快速上手dhnvr416h-hd设备数据监控开发

新手友好&#xff1a;基于快马平台快速上手dhnvr416h-hd设备数据监控开发 最近在做一个物联网项目&#xff0c;需要对接dhnvr416h-hd设备的数据监控功能。作为刚接触这个领域的新手&#xff0c;我发现理解设备数据格式和通信流程是最关键的第一步。好在通过InsCode(快马)平台的…...

OpenFOAM字典文件关键配置实战指南

1. OpenFOAM字典文件基础认知 第一次接触OpenFOAM的朋友&#xff0c;看到满屏幕的字典文件可能会有点懵。这玩意儿就像乐高积木的说明书&#xff0c;告诉你每个零件该怎么拼。我刚开始用的时候&#xff0c;经常把blockMeshDict和snappyHexMeshDict搞混&#xff0c;结果生成的网…...

实战分享:如何用Altium Designer高效搞定PCB的定位孔、散热孔和屏蔽孔?

Altium Designer实战&#xff1a;PCB定位孔、散热孔与屏蔽孔的高效设计指南 在PCB设计领域&#xff0c;机械孔的设计往往被工程师视为"简单任务"而草率处理&#xff0c;直到量产时才发现定位偏差、散热不足或EMI超标等问题。作为从业十年的硬件设计师&#xff0c;我曾…...

基于三菱PLC农田灌溉及MCGS组态智能灌溉系统说明双万字

基于三菱PLC农田灌溉 包含说明一万 和MCGS组态农田智能灌溉系统说明一万前阵子回豫东老家帮我叔打理那三亩秋月梨果园&#xff0c;那浇地给我整得怀疑人生——三伏天顶着三十七八度的太阳&#xff0c;扛着铁锹跑遍地头开电磁阀&#xff0c;中午热得头晕就算了&#xff0c;晚上还…...

【Java Web学习 | 第九篇】JavaScript(3) 数组+函数

【Java Web学习 | 第九篇】JavaScript(3) - 数组与函数进阶&#xff08;2026最新版&#xff09; 本篇对数组和函数进行更深入、实用的讲解&#xff0c;这是 Java Web 开发中处理后端返回数据&#xff08;JSON 数组/对象列表&#xff09;和封装业务逻辑的核心技能。 由于你特别…...

别再瞎调优先级了!STM32CubeMX配置FreeRTOS任务调度器的5个实战避坑点

别再瞎调优先级了&#xff01;STM32CubeMX配置FreeRTOS任务调度器的5个实战避坑点 刚接触FreeRTOS的嵌入式开发者&#xff0c;往往会在STM32CubeMX的图形化配置界面里迷失方向。那些看似简单的下拉菜单和复选框&#xff0c;背后却藏着让系统崩溃的陷阱。我曾见过一个工程师将任…...

开源推荐系统项目数据管理实战:从零构建高质量训练数据集

开源推荐系统项目数据管理实战&#xff1a;从零构建高质量训练数据集 【免费下载链接】fun-rec 推荐系统入门教程&#xff0c;在线阅读地址&#xff1a;https://datawhalechina.github.io/fun-rec/ 项目地址: https://gitcode.com/datawhalechina/fun-rec 你是否曾满怀热…...

利用快马平台与vscode codex快速构建react待办事项应用原型

最近在尝试用AI工具快速验证产品原型&#xff0c;发现InsCode(快马)平台配合VSCode Codex能实现惊人的开发效率。以React待办事项应用为例&#xff0c;从零到可交互原型只用了不到10分钟&#xff0c;分享下具体实现思路和操作过程。 需求拆解与AI描述 首先将待办事项应用的7个核…...

在 SAP 系统中,利润中心(Profit Center)和业务范围(Business Area)都是用于内部管理报告的组织单元,但它们在设计理念、功能和应用上存在显著区别。简单来说,利润中心是更现代

在 SAP 系统中&#xff0c;利润中心&#xff08;Profit Center&#xff09;和业务范围&#xff08;Business Area&#xff09;都是用于内部管理报告的组织单元&#xff0c;但它们在设计理念、功能和应用上存在显著区别。简单来说&#xff0c;利润中心是更现代、更灵活、功能更强…...

亿芸甄选商业模式系统开发

亿芸甄选商业模式系统开发&#xff1a;数字化驱动的新零售增长引擎在新零售行业加速数字化转型的背景下&#xff0c;亿芸甄选凭借其创新的商业模式与技术架构&#xff0c;成为美业等细分领域的增长。该系统以“级差分红智能运营”为核心&#xff0c;通过多层次激励机制与数字化…...