测试开发面试题---计算机网络

计算机网络模型

OSI模型:七层模型

  • 物理层:定义电气特征,机械特征等功能规范,传递实际比特流
  • 数据链路层:物理地址寻址(MAC),帧的传输,错误检测和纠正
  • 网络层:路由选择,逻辑地址寻址,数据包转发
  • 传输层:端到端的传输,提供差错控制、流量控制和拥塞控制
  • 会话层:建立维护和终止会话
  • 表示层:数据的加解密、压缩和格式转化
  • 应用层:提供应用层之间的接口,处理用户需求

TCP/IP模型

  • 网络接口层:物理地址寻址,帧传输
  • 网络层:路由选择、逻辑寻址和数据包转发
  • 传输层:提供端到端的通信、数据流控制和差错控制
  • 应用层:提供应用程序之间接口

TCP如何保证可靠传输

使用三次握手建立可靠连接

客户端首先向服务器发送请求连接,服务器收到后回复同步确认包,客户端收到后会回复确认包

使用序列号和确认机制保证数据传输的完整性

每个字节数据分配一个序列号,接收方通过确认号来确认收到的数据,如果发送方超时未收到确认就会重传数据包

流量控制和拥塞控制来避免网络阻塞

流量控制

TCP使用滑动窗口实现流量控制,发送方和接收方各自维护了一个滑动窗口,用于跟踪已发送未确认和允许发送的数据

拥塞控制

TCP的拥塞控制是动态调整数据发送速率来确保网络资源高效利用

  • 慢启动:初始时,拥塞窗口设置为一个人很小的值,每收到一个ACK,拥塞窗口会增加一个报文长度使得发送速率呈指数增长,直到达到慢启动阈值。
  • 拥塞避免:当检测到网络开始出现阻塞时,TCP进行阻塞避免,窗口的增长变为线性
  • 快重传:如果接受方发现失序ACK会向发送方迅速发送多个ACK,发送方接收到以后会立即重传,无需等待重传计时器
  • 快恢复:发送窗口设置为收到ACK前窗口的一半,并采用线性增长,避免再次阻塞

四次挥手终止连接 

Get和Post的区别

  • Get:数据参数包含在URL中,URL的长度有限制,不同的浏览器和服务器的限制不同;参数可见于URL中,可能包含敏感信息,容易被缓存或记录在浏览器中;多次相同的请求会得到一致的结果。
  • Post:数据参数在http正文中,URL的长度没有限制,理论上可以传输大量数据;参数不可见与URL中,相对安全,不会被缓存或者记录在浏览器中,多次相同的请求得到的结果不同。

HTTP长连接

长连接是相对于短链接而言的,短链接是指每次请求都会建立连接,请求完毕后再关闭连接。长连接则是每次请求完毕后不关闭连接,即请求可以复用连接。

HTTP实现长连接方式

  • 在发送请求时,客户端会在请求头中包含connection-keep alive表明自己想与服务器建立连接,并且在请求完毕后不关闭连接。
  • 服务器会回复客户端一个connection-keep alive确认并同意长连接

长连接优点

  • 减少了连接创建和关闭的开销,提高了通信效率
  • 对于频繁请求的场景可以减少延迟

HTTP1.0/1.1/2的区别

  • HTTP1.0采用短链接,每次请求都需要建立连接
  • HTTP1.1引入长连接,它采用分块传输方法,即每产生一个数据就发送一个数据
  • HTTP2完全多路复用,接收方和发送方可以同时接受和发送多条消息,具有服务器推送功能,即服务器可以未经客户端的允许推送信息,报头压缩。

HTTPS的工作流程

  • 客户端向服务器发送请求连接,服务器收到以后将自己的证书发送给客户端,证书中包含有效期、公钥和证书颁发机构等
  • 客户端收到证书后会检查证书的有效性,如果有效则随机生成一段数字并使用公钥进行加密发送给服务器
  • 服务器接收到以后解密,客户端与服务器建立连接开始通信

DSN解析过程

客户端首先会检查浏览器缓存,如果没有找到对应的IP地址就会去查询本地域名服务器,如果还没有找到就开始递归查询,本地域名服务器会向根域名服务器进行查询,根域名服务器不会给出IP地址,而是告诉本地域名服务器应该去那个顶级域名服务器查找,本地域名服务器像顶级域名服务器发起查找,顶级域名服务器会返回一个权限域名服务器列表,本地域名服务器任选一个权限域名服务器进行查询。

ARP工作流程

  • ARP请求:当一个主机与另一个主机进行通信时,首先检查自己ARP缓存中是否有目标对象对应的IP地址,如果没有就开始启动ARP查询过程
  • 广播ARP请求:源主机发送一个ARP请求,包括目的主机的IP地址和MAC地址(MAC地址设置为FF:FF:FF:FF:FF表示所有的主机都可以收到该请求)
  • 网络上所有主机都会收到这个ARP请求但只要目标主机会对请求进行响应
  • 目标主机会将源主机的IP地址和MAC地址,目标主机的IP地址和MAC地址封装在一起发送给源主机
  • 源主机接收到以后会提取目标主机的IP地址和MAC地址并更新到自己ARP缓存中

从浏览器输入URL显示到主页

  • DNS解析查找域名对应的IP地址
  • 与服务器通过三次握手建立连接
  • 向服务器发送HTTP请求
  • 服务器处理请求,返回网页内容
  • 浏览器解析并渲染页面
  • TCP四次挥手终止连接

对称加密和非对称加密

  • 对称加密:加密密钥和解密密钥相同,密钥必须保密并在通信双方之间共享,算法高效适合加密大量数据
  • 非对称加密:加解密使用一对密钥,一个公钥一个私钥,公钥可以公开,私钥则必须加密。效率较低,不适合加密大量数据。

cookie和session的区别

  • cookie是客户端的存储机制,服务端会将某一状态以key-value形式写入客户端中,客户端下次访问时会携带这些状态信息发送给服务端,服务端会根据cookie内容识别使用者
  • session是服务端保存机制,它会为每个会话创建一个SessionID并存入用户cookie中

因为session是服务器的存储机制,因此它会比cookie更加安全,同时cookie有数据量的限制而session则没有,所以cookie适合存储数据量小且不敏感的数据,session则适合处理数据量大比较敏感的数据。

DOS、DDOS和DRDOS

  • DOS(拒绝服务攻击):攻击者使用单个计算机向系统发送大量请求导致目标计算机或者网络资源过载,无法响应用户请求。
  • DDOS(分布式拒绝服务攻击):攻击者使用多个计算机向系统发送大量请求,由于攻击源比较广泛且难以追踪,因此DDOS更具有攻击性
  • DRDOS(分布式反射拒绝服务):利用第三方服务器作为反射器,将受害者IP设为源IP地址向多个反射服务器发送请求,这些服务器接收到请求后向受害者发送大量数据,导致其无法正常工作。

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

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

相关文章

数据融合研究模板

摘要:本研究旨在深入探讨数据融合这一重要领域,包括其概念、方法、应用场景以及面临的挑战。通过对相关文献和实际案例的研究,分析数据融合在当今数字化时代的重要性和发展趋势。 一、引言 随着信息技术的飞速发展,数据呈现出爆…

php+bootstrap 编写简易的步骤进度条

个人笔记记录&#xff0c;步骤进度条。 版本一&#xff1a; 初始版本&#xff0c; 当前版本单纯的根据bootstrapCSS进行完成的简易版本。这个比较简单 样式我放在了最底下。 <div class"form-group steps"><div class"steps-height"><di…

如何在Linux中打开core文件

在Linux中打开core文件通常指的是使用调试工具来分析和查看core文件的内容&#xff0c;以便了解程序崩溃的原因。core文件是程序异常终止时由操作系统生成的一种内存转储文件&#xff0c;包含了程序崩溃时的内存、寄存器状态、堆栈等信息。以下是在Linux中打开core文件的一般步…

huawei 路由 RIP 协议中三种定时器的工作原理

RFC2453 定义的三种 RIP 协议定时器 更新定时器&#xff08;Update Timer&#xff09;&#xff1a;用于触发更新报文的发送&#xff0c;超时时间为 30 秒。老化定时器&#xff08;Age Timer&#xff09;&#xff1a;如果在老化时间内没有收到邻居发送的响应报文&#xff0c;则…

txt格式单词导入有道词典生词本 (java代码方式)

txt格式单词导入有道词典生词本 (java代码方式) 首先要求txt文档里单词的格式&#xff0c;大概需要像这种&#xff1a; 每行是一个单词&#xff0c;格式为&#xff1a;英文单词空格词性单词意思。 注意 导出单词本的名字就是你 txt 文件的名字 我这里是 公共英语三级 单词本 …

IAR使用调试详解

目录 1 IAR功能介绍 1.1 File文件菜单 1.2 Edit编辑菜单 1.3 View视图菜单 1.4 Projcet工程菜单 1.5Debug调试菜单 1.6 Disassembly反汇编菜单 1.7 Simulator下载调试工具 1.8 Tools工具菜单 1.9 Window窗口菜单 1.10 Help帮助菜单 2 IAR设置 2.1 插入/编辑模板 2…

如何选择最佳的云盘检测方案?

橡胶密封圈是一种用于填塞、密封或隔离物体之间空隙的圆形零件&#xff0c;通常由橡胶或类似材料制成。这些密封圈通常用于工程、机械或汽车领域&#xff0c;以防止液体、气体或其他物质泄漏。 橡胶密封圈通常对多种化学物质具有良好的耐腐蚀性能&#xff0c;使其适用于各种环…

一些关于颜色的网站

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 1、中国传统色 2、网页颜色选择器 3、渐变色网站 4、多风味色卡生成 5、波浪生成 6、半透明磨砂框 色卡组合

T-CNN——利用张量 CNN 增强缺陷检测

1. 摘要 缺陷检测是制造业中一个重要而具有挑战性的问题。本研究引入了张量卷积神经网络&#xff08;T-CNN&#xff09;&#xff0c;并在罗伯特-博世制造工厂生产的超声波传感器组件缺陷检测的实际应用中验证了其性能。与同类 CNN 模型相比&#xff0c;作者的量子启发 T-CNN 通…

【后端开发实习】Python基于Quart框架实现SSE数据传输

Python基于Quart框架实现SSE数据传输 前言SSE简介理论分析代码实现 前言 在类似Chatgpt的应用中要实现数据的流式传输&#xff0c;模仿实现打字机效果&#xff0c;SSE是不二之选。传统的Flask框架不能满足异步处理的要求&#xff0c;没有异步处理就很难实现实时交互的需求&…

Java中的object类与objects类

Java中的Object类和Objects类在Java类库中扮演着不同的角色&#xff0c;它们之间存在明显的区别。 Object类 基础与根源&#xff1a; Object类是Java类层次结构的根类。这意味着Java中的每一个类&#xff08;除了Object类本身&#xff09;都直接或间接地继承自Object类。Obje…

2024年7月解决Docker拉取镜像失败的实用方案,亲测有效

在Ubuntu 16.04、Debian 8、CentOS 7系统中&#xff0c;若遇到Docker拉取镜像失败的问题&#xff0c;以下是一些亲测有效的解决方案&#xff1a; 配置加速地址 首先&#xff0c;创建Docker配置目录&#xff1a;sudo mkdir -p /etc/docker然后&#xff0c;编辑daemon.json文件…

C++客户端Qt开发——Qt窗口(对话框)

5.对话框 ①对话框介绍 对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口&#xff0c;出现在程序最上层&#xff0c;用于实现短期任务或者简洁的用户交互。Qt常用的内置对话框有&#xff1a;QFiledialog…

【第四天】计算机网络知识 HTTP1.0,HTTP1.1与HTTP2.0的区别 HTTP3.0

HTTP1.0&#xff0c;HTTP1.1与HTTP2.0的区别 HTTP1.0 默认是短链接&#xff0c;可以强制开启长连接。HTTP1.1默认长连接。HTTP2.0采用多路复用。 HTTP1.0&#xff1a; 默认使用短链接&#xff0c;每次请求都需要建立一个TCP连接。它可以设置&#xff1a;Connection: keep-aliv…

利用OSMnx求路网最短路径并可视化(二)

书接上回&#xff0c;为了增加多路径的可视化效果和坐标匹配最近点来实现最短路可视化&#xff0c;我们使用图形化工具matplotlib结合OSMnx的绘图功能来展示整个路网图&#xff0c;并特别高亮显示计算出的最短路径。 多起终点最短路路径并计算距离和时间 完整代码#运行环境 P…

洛谷 P9854 [CCC 2008 J1] Body Mass Index

这题让我们计算出 BMI 值&#xff0c;随后判断属于哪个等级。 BMI 值计算公式&#xff1a; ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​。 BMI 范围 对应信息 …

【JVM基础08】——类加载器-说一下类加载的执行过程?

目录 1- 引言&#xff1a;类加载的执行过程1-1 类加载的执行过程是什么&#xff1f;(What) 2- ⭐核心&#xff1a;详解类加载的执行过程(How)2-1 加载——>加载到运行时数据区2-2 验证——>类的安全性检查2-3 准备——>为类变量分配内存并设置初始值2-4 解析——>把…

Web网页端IM产品RainbowChat-Web的v7.1版已发布

一、关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统&#xff0c;是RainbowChat的姊妹系统&#xff08;RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统&#xff09;。 ► 详细介绍&#xff1a;http://www.52im.net/thread-2…

每天一个设计模式之职责链模式(第一天)

特别感谢刘伟老师&#xff0c;看他的书我学到了很多东西&#xff0c;从今天开始我要开始更新啦&#xff01; 在csdn个人博客来总结知识&#xff0c;把他们变成自己的能力。 对三&#xff0c;要不起&#xff0c;张三李四王五几个人在玩斗地主&#xff0c;过过过&#xff0c;一…

Codeforces Round 962 (Div. 3)

链接 C题&#xff1a; 思路&#xff1a; 直接暴力求每个字母的前缀和&#xff0c;对于区间l&#xff0c;r的最小操作就是区间不同数的一半&#xff0c;因为可以把一个数变成另一个不一样的数&#xff0c;一下抵消两个。 #include<bits/stdc.h> using namespace std; //…