计算机网络问题

计算机网络问题

1、路由表中有环怎么办?(字节)

路由是网络层组件

什么是路由表?

什么是路由回路?

在维护路由表信息的时候,如果在拓扑发生改变后,网络收敛缓慢产生了不协调或者矛盾的路由选择条目,就会发生路由环路的问题。

这种情况下会导致用户的IP数据包不停在网络上循环发送,最终造成网络资源的严重浪费。

RIP协议解决如何解决路由回路问题?

RIP协议是一种基于距离度量的路由选择协议。

  1. 最大跳数:距离是指跳数,直接相邻的路由器跳数为1,跳数超过15表示不可达。
  2. 水平分割:
  3. 路由中毒:
  4. 毒性逆转:
  5. 控制更新时间:
  6. 触发更新:

OSPF(开放最短路径优先)协议解决路由回路问题。

2、四次挥手最后等待为什么2MSL?(百度)(腾讯)(字节)(美团)(顺丰科技)(滴滴)(跟谁学)(有赞)

两个原因:

  1. 确保最后一个确认报文到达,如果server没有收到client发送来的确认报文,那么就会重新发送连接释放请求报文。客户机等待一段时间就是为了处理这种情况发生。
  2. 等待一段时间是为了让本连接内产生的所有报文都从网络中消失,使得下一个新的连接不会出现旧的连接请求报文。

3、https怎么保证安全?(百度)

http的安全问题:

  1. 使用明文通信,内容可能被窃听。
  2. 不验证通信方身份,通信方身份可能存在伪装。
  3. 无法验证报文的完整性,报文有可能遭到篡改。

https通过使用SSL具有了加密(混合加密)、认证(数字证书,用于存放公钥,保证其不被篡改以及可信性)、完整性保护(摘要算法)等功能。

4、SSL/TLS连接怎么建立?

SSL:安全套接字层,位于传输层与应用层之间的一种协议层。通过相互认证、使用数字签名确保完整性。使用加密保证私密性。以实现客户机服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。

  1. 客户端向服务器索要并验证服务器的公钥。
  2. 双方协商生产「会话秘钥」。
  3. 双方采用「会话秘钥」进行加密通信。

5、为什么是四次挥手、为什么time-wait等待2MSL时间?

如果是两次挥手,客户机请求关闭服务端直接关闭了,有可能服务端的数据并没有传输完成,造成数据丢失。如果是三次挥手,服务端数据传输完成立即关闭连接。可能会导致本次tcp连接产生的报文残留在网络中。所以需要四次挥手。

6、TCP与UDP?(百度)(腾讯)(用友)(大华)(字节)(美团)(顺丰科技)(滴滴)(跟谁学)(有赞)(华为)

TCP是传输控制协议,提供面向连接可靠字节流服务。通过三次握手建立连接。之后才能进行数据传输。TCP提供超时重传、流量控制、拥塞控制等功能。

UDP是用户数据报协议,是一个简单的面向无连接的协议。UDP不提供可靠服务,由于传输数据之前不需要建立连接,所以传输速度很快。其主要使用场景有流媒体传输

7、TCP的流量控制?(华为)(中兴)(百度)(字节)

利用滑动窗口实现流量控制,如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。

8、TCP三次握手过程中客户机与服务端的状态变化?(腾讯)(跟谁学)(字节)

客户机经历了:close -> SYN-sent -> estab-listen

服务端经历了:close -> listen -> SYN-RCVD ->estab-listen

8.1、TCP的拥塞控制?(百度)

拥塞窗口概念。初始化cwnd = 1

慢开始、拥塞避免、快重传、快恢复。

9、ARP工作原理?

ARP:地址解析协议。

每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。

源主机向当前网段的所有主机发送ARP数据包,包含了源主机IP、MAC地址,以及目标主机IP地址。

本地网络的主机收到数据包后检查其中的目标IP是否为自己的。如果不是则忽略,如果是的话就将自己的MAC地址写入数据包,并将数据包中源主机的IP、MAC地址写入自己的ARP缓冲区中。

10、ICMP协议?

ICMP是Internet Control Message Protocol,因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由器是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP报文有两种:差错报告报文和询问报文。

11、数据链路层的作用?(字节)

封装成帧、透明传输、差错检测(循环冗余检测保证传输过程中的数据准确性)。

12、传输层协议与网络层协议的区别?

网络层协议负责的是提供主机间的逻辑通信,运输层协议负责的是提供进程间的逻辑通信。

13、静态路由和动态路由的区别?

静态路由是由管理员手工配置的,适合比较简单的网络或需要做路由特殊控制。而动态路由则是由动态路由协议自动维护的,不需人工干预,适合比较复杂大型的网络。

14、IO同步、异步区别?阻塞、非阻塞区别?

客户端发出一个请求,在服务器做出响应之前客户端发过来的请求线程会被挂起,这就是阻塞。此时线程只能等完成这次的请求之后才可以去处理其他的事件,这就叫做同步

客户端发出了一个请求,然后不等服务器处理就直接返回给客户端了。此时请求线程没有被挂起,这就是非阻塞。线程可以去处理其他事件,这就是异步。服务器通过回调函数来处理这个请求。

15、数据链路层的协议?(字节)

点到点信道的数据链路层协议:

PPP(point-to-point protocal)协议:互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议

使用广播信道的数据链路层协议:

载波监听、多点接入、冲突检测协议:

  • 多点接入:许多计算机以多点接入的方式连在一根总线上。
  • 载波监听:监听线路上其他设备是否在线,不在线的话可以进行通信
  • 冲突检测:在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。

16、DNS寻址过程?(美团)

  1. 本地host文件
  2. 本地DNS解析器缓存
  3. 本地DNS服务器
  4. 根域名DNS服务器
  5. 递归的去找到包含目标IP的DNS服务器

17、输入网址的过程?(字节)(百度)

  1. 浏览器向DNS服务器请求解析该url中携带域名的IP地址,并返回给浏览器
  2. 浏览器与上述ip地址服务器通过三次握手建立TCP连接
  3. 浏览器发出HTTP请求,随后服务器将浏览器请求的资源发送给浏览器
  4. 数据传输完成,浏览器请求关闭TCP连接(四次挥手)
  5. 浏览器渲染资源,进行页面展示

18、HTTP1.0 和 HTTP1.1 和 HTTP2的区别?(百度)

HTTP1.1相较于HTTP1.0 增加了长连接功能,该功能不会主动的去断开一个TCP连接,这样的话就不用每次发送HTTP请求时都重新建立TCP连接。因为重复的建立、断开TCP连接费时又费资源。

HTTP2.0主要有以下几个新特性:

头部压缩、多路复用、二进制帧层

19、Http的内容协商是什么样子?(百度)

20、Http协议的标准请求头有哪些?(百度)

Accept:可以接收的响应内容格式

Connection:客户端想要优先使用的连接类型,keep-alive、upgrade

Host:客户端告诉服务端它请求的资源所在的主机与端口号

cookie:客户端请求时携带的数据

21、如何预防TCP三次握手期间的SYN攻击?(百度)

首先,TCP协议建立连接前需要双方确认信息,用于防止伪造连接以及精准控制整个数据传输过程中数据完整有效。这样就会造成TCP连接的资源消耗,其中包括:数据包信息、条件状态、序列号等等。SYN攻击就是故意不完成建立连接所需要的三次握手过程,造成连接一方的资源耗尽。

SYN攻击:

**如何检测:**Linux中使用 netstat -n -p TCP | grep SYN_RECV 命令检测是否被SYN攻击。

如何防范?

主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固TCP/IP协议栈防范

22、TCP与UDP的区别?

  1. TCP是面向连接的协议,在收发数据前需要与对方建立可靠的连接。一个TCP连接必须通过三次握手才能建立起可靠的连接。而UDP是一个非连接协议。由于传输数据不建立连接,因此一台服务器可以向多客户机传输相同的信息。
  2. TCP的滑动窗口可以进行流量控制,而UDP的吞吐量除了受网络带宽等限制外不受其他限制。
  3. TCP提供基于超时重传的可靠交付,而UDP提供尽最大努力交付,即不保证可靠交付。
  4. UDP是面向报文的。发送方的UDP对应用程序交下来的报文, 在添加首部后就向下交付给IP层。TCP面向数据流。

23、HTTP协议为什么设计为无状态的?(百度)

HTTP设计为无状态的话服务端就可以根据需求将请求分发到服务集群的任意节点上。有利于做负载均衡。

24、TCP如何保证可靠传输?(华为)(滴滴)

依靠超时重传实现可靠传输。TCP每发送一个数据报后会开启一个计时器,等待目标服务器确认收到了这个报文段。如果计时器时间内没有收到确认,则会重发这个报文段。

25、服务端可以主动断开TCP连接吗?(跟谁学)

可以

26、http常用状态码?

1xx 类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。

2xx 类状态码表示服务器成功处理了客户端的请求,也是我们最愿意看到的状态。

3xx 类状态码表示客户端请求的资源发送了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向

  1. 301 Moved Permanently」表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
  2. 302 Found」表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问。

4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。

  1. 404 Not Found」表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。

5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

27、TCP的三次握手为什么不是两次?(字节)(美团)(shopee)

  • 为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤。
  • 如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认
  • 顺带也解决了已失效的连接请求又传送到服务器端的问题。

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

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

相关文章

【MySQL】如何选择字符集与排序规则(字符集校验规则)

思考 就中文而言,MySQL 中可以选择 gb2312 、utf8 及 utf8mb4 。这三种字符集有什么差异 ?应该如何选择? 比较项gb2312utf8utf8mb4字符集范围简体中文字符集大部分 Unicode 字符更广泛的 Unicode 字符,包括罕见字符和 Emoji 表情…

1688商品详情API:实现商品详情自动化的关键步骤

要实现商品详情的自动化,你可以遵循以下关键步骤: 明确需求和目标:首先,明确你想要通过自动化实现什么。是想要定期获取商品数据,进行数据分析,还是其他目的?确定目标有助于制定计划和步骤。集…

异步任务判断执行和重复使用实现类

主要是展示一下如何在书写异步任务判断的时候,如何根据返回值类型进行重复使用相同接口里面的不同实现类的方法 /*** 父类接口* **/ public interface Exceutor {String getTaskType();void excetuor(String s); }/*** 异步处理任务的任务类型** author yangziqian…

arcpy点要素生成经纬度字段脚本

说明 本脚本是用来简化操作的,正常情况下要生成经纬度字段,需要添加字段→填写字段名→写字段类型→字段计算器→计算几何。。。 而且经纬度都需要,要循环两遍。 本脚本就是为了简化以上操作的,安装后,打开脚本直接输…

从《数据库索引设计与优化》看mysql索引设计

很久之前写的一篇文章,主要是结合mysql45讲和《数据库索引设计与优化》讨论索引设计的,拿出来分享下。 选用什么引擎 对于INSERT_SELECT型数据库,如果没有事务的要求,更倾向于选择MyISAM。 因为InnoDB会维护更多的数据&#xff…

一个古老的终端显示控制命令-tput命令|帮你解决中英文混合时终端列对齐输出问题

终端显示控制对于写一个 终端脚本 是非常有用的,在没有图形界面时Unix和类Unix系统用户都是在Terminal控制终端下工作的。虽然Linux操作系统的图形界面出现淡化了终端显示控制,但终端控制功能依旧是每个命令行用户不可或缺的一部分。只是我们不知道在使用…

【LeetCode:129. 求根节点到叶节点数字之和 | 二叉树 + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

MySQL 8.0 ReplicaSet备库切换为可读写单库

MySQL 8.0 ReplicaSet备库切换为可读写单库 方法一方法二 方法一 从集群中删除备库(不会改变备库只读状态) # 检查备库标识 var rs dba.getReplicaSet() rs.status()# 移除备库同步 rs.removeInstance("MYSQL_REPLICA_IDENTIFIER:3306") #或…

记录汇川:水塔指令解释-ST

可以通过帮助查看指令手册 PLC的IO地址映射-两种方法 第一种: 新建一个全局变量表,按照如图所示建立IO地址 第二种: 直接如图所示位置定义名字 注意:IW和QB这两个前面一个有蓝色M一个没有。 蓝色的M表示模块发生变化的时候地址不会…

【S32K 进阶之旅】 NXP S32K3 以太网 RMII 接口调试(1)

前言 大联大世平集团推出了一款基于 NXP 车规级 MCU S32K344 的开发板——花名“Cavalry”,它使用 BGA257 封装的 32 位 ArmCortex-M7 S32K344 作为主控芯片,在69.6*130mm 的小体积开发板上搭载了 SBC 电源管理芯片、CAN 收发器、LIN 收发器、FLASH 存储…

低噪声,高增益的音频信号处理电路芯片选型分析

随着智能手机、汽车音频、AI智能音箱,智能家居、家庭影院、平板电脑、笔记本电脑等智能设备的普及;数字音频功放芯片的应用也越来越广泛;同时对音频信号处理的芯片的性能要求越来越高;以下几款就是常用热门音频信号处理电路芯片分…

NVM NodeJs版本管理 通关宝典

NVM NodeJs版本管理 通关宝典🏹 文章目录 NVM NodeJs版本管理 通关宝典🏹一、NVM是什么二、开始使用NVM三、NVM 命令速查四、手动安装特定Node版本(Windows)🙄4.1 NVM for windows 运行机制4.2 手动安装流程 五、切换 NVM 下载镜像源六、常见…

日志级别及其作用

在软件开发与运维过程中,日志是至关重要的部分,它记录了系统运行时的各种状态信息,包括错误、警告、调试信息等。不同的日志级别用于区分不同重要程度的信息,便于开发者和运维人员快速定位问题,优化系统性能&#xff0…

21. Mysql 事件或定时任务,解放双手,轻松实现自动化

文章目录 概念常见操作事件调度器操作查看事件创建事件删除事件启动与关闭事件 精选示例构造实时数据定时统计数据 总结参考资料 概念 Mysql 事件是一种在特定时间点自动执行的数据库操作,也可以称呼为定时任务,它可以自动执行更新数据、插入数据、删除…

x-cmd pkg | doggo - 现代化的 DNS 客户端

目录 简介首次用户快速实验指南功能特点类似工具与竞品进一步探索 简介 doggo 是一个由 Karan Sharma 于 2020 年使用 Go 语言开发的 DNS 客户端。它类似于 dig 命令,但旨在以现代化、简洁和可读的格式输出 DNS 查询结果。 首次用户快速实验指南 使用 x doggo 即可…

vue浏览器预览word文件

XDOC(最终实现方法) XDOC官方文档 window.open(https://view.xdocin.com/view?src encodeURIComponent(url), _blank);Office Online(尝试报错) window.open( https://view.officeapps.live.com/op/view.aspx?src url, _bl…

1.4 day4 IO进程线程

使用两个子进程进行文件拷贝&#xff0c;父进程进行资源回收 #include <myhead.h> int main(int argc, const char *argv[]) {//创建一个文件描述符并以只读的方式打开int fd-1;if((fdopen("./test.bmp",O_RDONLY))-1){perror("open error");return…

0.5(Euler-Maruyama), 1(Milstein), 和1.5 阶强Stochastic Differential Equation格式总结

本文的目的在于提供0.5&#xff0c;1和1.5阶强SDE数值格式的推导和内容&#xff0c;所有推导基于 I t o − T a y l o r Ito-Taylor Ito−Taylor展开&#xff0c;由于国内外网站缺少关于强SDE数值阶的总结&#xff0c;笔者在此特作总结&#xff0c;为使用SDE数值格式的读者提供…

Maven打包使用多线程加速构建过程

在Maven项目中&#xff0c;特别是在包含大量模块的大型项目构建时&#xff0c;编译和打包阶段可能会消耗较长时间。为了提升构建效率&#xff0c;Maven支持通过多线程进行并行构建&#xff0c;从而显著减少整体打包时间。本文将介绍两种启用Maven多线程打包的方式&#xff1a;命…

IDAPython详细版(二)

六&#xff1a;操作数 可以使用idc.get_openrand_typed(ea,n)得到操作数的类型。ea是地址&#xff0c;n是索引 这里有8种不同类型的操作数类 0_void 如果一个指令木有任何操作数它将返回0 0_reg 如果一个操作数是一个普通的寄存器将返回此类型。这个值在内部表示为1. o_mem …