计算机网络问题

news2025/3/11 0:32:45

1.网络分层结构及其必要性

五层体系结构:在这里插入图片描述

七层结构:

  1. 应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS.
  2. 表示层:数据的表示、安全、压缩。,确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
  3. 会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.
  4. 传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.
  5. 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.
  6. 数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
  7. 物理层:建立、维护、断开物理连接。

TCP/IP 四层模型

上面三层与五层相同,最后一层对应五层的物理层和数据链路层

2. 三次握手(运输层的实现 建立应用进程间的TCP连接)

三次握手过程

在这里插入图片描述

  1. 一开始,TCP服务器进程首先创建传输控制块用来存储TCP连接中的重要信息。之后,TCP服务器进入监听状态
  2. TCP客户进程首先创建传输控制块,然后主动向TCP服务器发送连接请求报文段,并进入同步已发送状态。(SYN=1表示该报文段为请求建立连接的的报文段seq=x表示TCP客户进程所选择的初始序号
  3. TCP客户进程发送TCP连接请求确认报文段,并进入同步已接收状态SYN=1表示该报文段为同意建立连接的报文段ACK=1表示确认接受客户端发送的报文段seq=y表示TCP服务器进程所选择的初始序号ack=x+1表示对TCP客户进程所选择的初始序号的确认)。
  4. TCP客户端向TCP服务器进程发送一个普通的TCP确认报文段,并进入连接已建立的状态。(ACK=1表示确认接受TCP服务端发送的报文段seq=x+1表示TCP客户进程已经消耗一个序号,这是下一个要消耗的序号ack=y+1表示对TCP服务器进程所选择的初始序号的确认)(注意:该条报文段没有SYN字段,若该报文段不携带数据,则下一次,客户端发送报文段时候,序号仍然为seq=x+1)
  5. TCP服务器进程收到报文段后,进入连接已建立状态。现在,两个进程之间可以基于已建立好的TCP连接进行可靠传输。

注意:TCP规定SYN=1的报文段,不能携带数据,但要携带一个序号
各个字段的意思
在这里插入图片描述

3. 两次握手可以吗?

第三次握手主要为了防止在网络中因某些原因滞留过久的连接请求报文段突然传输到了服务端,TCP服务器进程会误认为这是TCP客户进程发起了一个新的TCP连接请求,于是,TCP服务器发送tcp连接请求确认报文段,并进入连接已建立状态,因为TCP客户端处于关闭状态,这就导致TCP服务器进程一直等待TCP客户进程发来数据,这就白白浪费TCP服务器进程所在主机的很多资源

那可能会想到,就算是三次握手,此时TCP客户端为关闭状态,会导致TCP服务器进程的超时重传。不会的,TCP客户端关闭是一个过程的(四报文挥手的等待状态)。

4. 四次挥手(运输层的实现 释放应用进程间的TCP连接)在这里插入图片描述

细节待更

5. 第四次挥手为什么要等待2MSL?

6. 为什么是四次挥手?

7. TCP有哪些特点?

8. 说说TCP报文首部有哪些字段,其作用又分别是什么?

9. TCP和UDP的区别?

10. TCP 和 UDP 分别对应的常见应用层协议有哪些?

基于TCP的应用层协议有:HTTP、FTP、SMTP、TELNET、SSH

  1. HTTP:HyperText Transfer Protocol(超文本传输协议),默认端口80
  2. FTP: File Transfer Protocol (文件传输协议), 默认端口(20用于传输数据,21用于传输控制信息)
  3. SMTP: Simple Mail Transfer Protocol (简单邮件传输协议) ,默认端口25
  4. TELNET: Teletype over the Network (网络电传), 默认端口23
  5. SSH:Secure Shell(安全外壳协议),默认端口 22
  6. 基于UDP的应用层协议:DNS、TFTP、SNMP

DNS : Domain Name Service (域名服务),默认端口 53

  1. TFTP: Trivial File Transfer Protocol (简单文件传输协议),默认端口69
  2. SNMP:Simple Network Management Protocol(简单网络管理协议),通过UDP端口161接收,只有Trap信息采用UDP端口162。

11. 说下TCP的滑动窗口机制(流量控制)

12. 详细讲一下拥塞控制?(拥塞控制)

13. HTTP协议的特点?

14. HTTP报文格式

15. HTTP状态码有哪些?

16. HTTP 协议包括哪些请求?

17. HTTP状态码301和302的区别?

18. POST和GET的区别?

19. URI和URL的区别

  1. URI,全称是Uniform Resource Identifier),中文翻译是统一资源标志符,主要作用是唯一标识一个资源
  2. URL,全称是Uniform Resource Location),中文翻译是统一资源定位符,主要作用是提供资源的路径

20. 如何理解HTTP协议是无状态的

当浏览器第一次发送请求给服务器时,服务器响应了;如果同个浏览器发起第二次请求给服务器时,它还是会响应,但是呢,服务器不知道你就是刚才的那个浏览器。简言之,服务器不会去记住你是谁,所以是无状态协议

21. HTTP长连接和短连接?

HTTP短连接:浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。HTTP1.0默认使用的是短连接。
HTTP长连接:指的是复用TCP连接多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。

22. HTTP 如何实现长连接?

通过在头部(请求和响应头)设置Connection字段指定为keep-alive,HTTP/1.0协议支持,但是是默认关闭的,从HTTP/1.1以后,连接默认都是长连接。

23. HTTP长连接在什么时候会超时?

HTTP一般会有httpd守护进程里面可以设置keep-alive timeout,当tcp连接闲置超过这个时间就会关闭,也可以在HTTP的header里面设置超时时间
TCP 的keep-alive包含三个参数,支持在系统内核的net.ipv4里面设置;当 TCP 连接之后,闲置了tcp_keepalive_time,则会发生侦测包,如果没有收到对方的ACK,那么会每隔 tcp_keepalive_intvl再发一次,直到发送了tcp_keepalive_probes,就会丢弃该连接

24. HTTP1.1和 HTTP2.0的区别?

25. HTTP1.1和 HTTP2.0的区别?

26. 什么是数字证书?

27. HTTPS原理

28. DNS 的解析过程?

29. 浏览器中输入URL返回页面过程?

  1. 解析域名,找到主机 IP。
  2. 浏览器利用 IP 直接与网站主机通信,三次握手,建立 TCP 连接浏览器会以ip地址和端口向服务器发起TCP 的连接
  3. 建立 TCP 连接后,浏览器向主机发起一个HTTP请求
  4. 服务器响应请求,返回响应数据
  5. 浏览器解析响应内容,进行渲染,呈现给用户。

30. 什么是cookie和session?

31. 什么是cookie和session?

32. 什么是对称加密和非对称加密?

33. 说说 WebSocket与socket的区别

34. ARP协议的工作过程?

35. ICMP协议的功能?

36. 什么是DoS、DDoS、DRDoS攻击?

37. 什么是CSRF攻击,如何避免

38. 什么是XSS攻击?

39. 如何解决XSS攻击问题?

40. 说下ping的原理

41. 简述DNS劫持

DNS劫持指攻击者篡改结果,使用户对域名的解析IP变成了另一个IP。

42. Put与Delete区别

Put规定默认为更新某一资源,和Post一样,一般该操作会对服务器资源进行改变
Delete规定默认为删除某一资源和Post一样,一般该操作会对服务器资源进行改变

43. HTTP2/HTTP3的特性?

HTTP2

  1. 二进制格式:HTTP1的解析是基于文本格式的,HTTP2的解析是基于二进制格式的,效率更高。
  2. 帧与双向数据流:同时HTTP2引入帧和流的概念;帧就是HTTP2通信的最小消息单位,报文被分割为多个帧;”流概念“是存在于连接中的双向的虚拟通道,帧可以在拥有整数标识的流上进行双向传输,一个连接可以承载任意数量的流,所以多个帧之间可以乱序发送,根据帧首部的流标识重新组装。
  3. 多路复用:HTTP1想要并发多个请求只能起多个TCP连接,而且浏览器对单个域名还有TCP连接数量的限制,HTTP2拥有流和帧后单个连接上就可以并发进行多个请求和响应,避免了HTTP1中的队头阻塞问题,极大地提升了性能。
  4. 头部压缩:HTTP1的头字段太长了,而且每次都重复发送,非常浪费带宽,HTTP2使用特别的算法在客户端和服务端建立字典记录之前发送的键值对,这样就能用索引号代替重复字符串,压缩效率极高。
  5. 服务端推送:HTTP1中服务端需要等待客户端请求才能被动响应,而HTTP2.0是允许服务端向客户端主动推送的。

HTTP3

  1. 相比HTTP2的优化:HTTP2使用流和帧的概念实现了多路复用,但这只是在应用层的优化,并未完全解决队头阻塞问题,在TCP连接中一旦发生丢包就会阻塞住后续所有请求。因此,HTTP3将传输层的TCP协议换为了UDP协议,并引入QUIC协议使UDP实现了类似TCP的可靠传输,如果某个流丢包只会阻塞这个流而不会阻塞其他流。

  2. QUIC 内含了 TLS1.3,只能加密通信,支持 0-RTT 快速建连;
    在这里插入图片描述

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

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

相关文章

『Linux笔记』Linux设置SSH远程连接Docker容器

Linux设置SSH远程连接Docker容器 文章目录 一. 创建容器二. 进入容器/设置密码三. 安装ssh及修改配置四. 重启ssh服务五. 远程连接六. 提交运行中的容器docker commit参考文章 一. 创建容器 在ubuntu镜像中创建容器,并将docker服务器的60222端口映射到容器的22端口…

如何将Tomcat集成到IDEA中并启动项目?

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 服务器软件:apache-tomcat-8.5.27 目录一、为什么要将Tomcat集成到IDEA里?二、集成步骤2.1 在IDEA中创建Tomcat2.2 创建java的企业级模块(动态的we…

同为科技(TOWE)8路RS485通讯智能机柜PDU时序电源管理器

智能PDU电源时序管理器的出现是为了更好地管理数据中心和服务器机房的电源,以提高其可靠性和效率。在传统的机房电力管理中,运维人员需要手动控制每个设备的电源开关和电力分配,这种方式不仅效率低下,而且容易出现操作失误和电源供…

记一次mysql cpu 异常升高100%问题排查

此服务器为一个从库,用于数据的导出业务,服务器配置较低,日常的慢sql也比较多。 上午11点左右cpu异常告警,如下图所示, cpu使用率突增到50%,下午2点左右突增到100% ,登录服务器top命令查看cpu升…

基于脚手架@vue/cli 5.0.8搭建vue3项目教程

基于脚手架vue/cli 5.0.8搭建vue3项目教程 前言 前言 脚手架可以快速的帮我们搭建一个项目,而不需要我们从头开始去配置和引入插件,使用脚手架5.0.8版本创建的项目,局部webpack是5.x版本的,因此所有的配置均需要使用支持5.x版本的…

Shader Graph11-Detail Normal Map(法线贴图叠加)

本次我们希望通过叠加两个法线贴图来增加细节。 一、准备资源 我们需要一个模型,1张纹理贴图,2张法线贴图 我们可以在商店下载,这个mesh资源来做这个例子 打开OldWest->VOL3->Meshes,找到SM_Blankets_01c这个布的模型&am…

QoS技术原理

QoS技术的产生 随着网络的不断发展,网络规模及流量类型的不断增加,使得互联网流量激增,产生网络拥塞,增加转发时延,严重时还会产生丢包,导致业务质量下降甚至不可用。所以,要在IP网络上开展这些…

Abaqus 2022最新版下载软件安装包 永久安装包详细安装流程

Abaqus 2022是一套功能强大的工程模拟的有限元软件,其解决问题的范围从相对简单的线性分析到许多复杂的非线性问题。Abaqus包括一个丰富的、可模拟任意几何形状的单元库。并拥有各种类型的材料模型库,可以模拟典型工程材料的性能,其中包括金属…

浏览器网络之TCP与UDP

文章目录 网络模型TCP协议建立连接——三次握手断开连接——四次挥手为什么要三次握手与四次挥手 不常使用的协议——UDPTCP与UDP的区别UDP的使用场景 总结 网络模型 在理解TCP与UDP 之前,首先需要对网络结构有一些基本的认识,在互联网发展的初期&#…

【golang学习笔记】——(二)配置golang vscode开发环境

本次学习采用vscode进行开发,vscode有比较成熟的插件,使用起来比较方便。 一、插件下载 搜索“Go”,第一个插件即为go的开发插件,进行安装即可。 二、go辅助插件下载 使用快捷键:CtrlShiftP 输入Go:Install/Update T…

SpringCloud之组件Hystrix简介

服务雪崩介绍 服务提供者不可用导致服务调用者也跟着不可用,以此类推引起整个链路中的所有微服务都不可用, 服务提供者A因为某种原因出现故障,那么服务调用者服务B依赖于服务A的请求便无法成功调用其提供的接口,假以时日依赖于服务…

电子表格软件能解决什么问题?

在当下的时代,全球经济非常活跃,对于企业来说,经营的成果需要“用数字说话”——以数字来反映经营管理的的状况,这些都离不开报表,可以说报表的需求是无处不在的。 在企业所有的科技类项目中报表是最基本的功能。作为…

第二章:uniapp整合axios之真机测试两问题

第二章:uniapp整合axios之真机测试两问题 上一章节,笔者编写了uniapp整合axios并实现前后端跨域请求的方案,完成了这些基本配置后,在浏览器端的测试基本是可以完成了,但是当笔者将程序运行到手机时,却出现…

4个 Python 库来美化你的 Matplotlib 图表

Matplotlib是一个被广泛使用的Python数据可视化库,相信很多人都使用过。 但是有时候总会觉得,Matplotlib做出来的图表不是很好看、不美观。 今天我就给大家分享四个美化Matplotlib图表的Python库,它们可以轻松让你的Matplotlib图表变得好看…

fastjson 反序列化之mysql JDBC 利用

前言: 在打春秋云境Exchange 靶场时,入口点是华夏ERP 2.3版本系统,存在fastjson 反序列化漏洞,在尝试常见的fastjson利用链反弹shell都没有反应,最终使用mysql JDBC利用链反弹shell成功。在此记录一下。 复现本地靶场…

QT安装mysql驱动和使用ODBC连接mysql

文章目录 QT安装mysql驱动和使用ODBC连接mysql使用驱动连接mysql编译mysql驱动连接mysql 使用ODBC连接mysql QT安装mysql驱动和使用ODBC连接mysql 上一篇博文中提到了mysql的使用,但是很多人在使用新版Qt连接mysql的时候出现连接不上或者是没有mysql驱动的问题&…

不懂就问,Milvus 新上线的资源组功能到底怎么样?

在近期更新的 Milvus 2.x 版本中,我们上线了在社区中呼声一直很高的【资源组功能】。有了这个功能,用户再也不需要“为每个 collection 部署一套 Milvus 服务”的方案,轻松实现对 Query Node 资源进行分组管理,达到物理资源隔离的…

【C++】STL中的容器适配器 stack queue 和 priority_queue 的模拟实现

STL中的容器适配器 一、容器适配器1、什么是容器适配器2、STL标准库中的容器适配器 二、stack的模拟实现1、stack的简单介绍2、栈的模拟实现 三、queue的模拟实现1、queue的简单介绍2、queue的模拟实现 四、priority_queue的模拟实现1、priority_queue的简单介绍2、priority_qu…

家用洗地机哪款好用?好用的洗地机分享

要说现在家居清洁用什么单品更省心,洗地机必须要算一项。虽然这在国际上也不是什么新鲜的概念了,但是在国内兴起也只是这几年的事,关于家用洗地机什么牌子最好之类的问题也是很多人都比较关心的问题。我个人也是不喜欢做家务的,家…

Anaconda及其他说明及安装

来自神秘人的投稿! 以下内容来源于官方视频说明:Anaconda Distribution versus Miniconda和其他整理与添加。 一、基础信息了解 1. 什么是Anaconda Anaconda Distribution:形象的比喻——一台笔记本电脑,一切都组装好了&#x…