计算机网络问题

发布时间:2024年01月05日

计算机网络问题

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 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤。
  • 如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认
  • 顺带也解决了已失效的连接请求又传送到服务器端的问题。
文章来源:https://blog.csdn.net/weixin_48877626/article/details/135266757
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。